当前位置: 首页 > 知识库问答 >
问题:

在改变主题的同时呈现问题

司空炯
2023-03-14

我是Appdevelopment新手,试图在Windows 10 x64上的Android Studio 1.4.1(最新版本)中更改我的应用程序主题,但我总是遇到例外情况,我的做法如下:(是的,我现在已经有很多问题,但我找不到答案)

  1. 启动项目(名称:TEST)

渲染问题

无法实例化以下类:

  • Android。支持设计小装置。协调布局
  • Android。支持设计小装置。AppBarLayout

提示:[……]

例外情况详细信息

oader.createIllegalArgumentException:您需要使用一个Theme。AppCompat主题(或后代)与设计库。在oader.java:458ThemeUorg.jetbrains.android.uipreview.AppCompatTheme(ThemeUoader.load)在oader.java:170协调器布局。(协调器Lorg.jetbrains.android.uipreview.)在oader.load协调器布局。(协调器Loader.java:103)在com.android.tools.idea.rendering.NativeConstructorAccessorImpl.loadInstance0(本机方法)在mpl.java:190NativeConstructorAccessorIandroid.view.实例(NativeConstructorAccessorInflater.load)在sun.reflect.ConstrucatingConstructorAccessorImpl.new实例(ConstrucatingConstructorAccessorImpl.java:45)在java.lang.reflect.Constructor.new实例(Constructor.java:422)在org.jetbrains.android.uipreview.ViewLjava.lang.NewInstance(ViewLandroid.support.design.widget.)在tils.checkViewLtils.java:34Class(ViewLandroid.support.design.widget.)在ayout.java:178ViewLandroid.support.design.widget.View(ViewLayout.java:172)在sun.reflect.LayoutlibCallbackImpl.newView(LayoutlibCallbackIsun.reflect.)在mpl.newBridgeImpl.java:62CustomView(BridgeInflater. java: 218)RenderTask. createRenderSession(RenderTask. java:498)在com. android. tools. idea. render。RenderTask. access 600美元(RenderTask. java:72)在com. android. tools. idea. render。RenderTask3美元. call(RenderTask. java:610)在com. android. tools. idea. render。RenderTask3美元. call(RenderTask. java:607)在com. android. tools. idea. render。RenderService. runRenderAction(RenderService. java:366)在com. android. tools. idea. render。RenderTask. render(RenderTask. java:607)在com. android. tools. idea. render。RenderTask. render(RenderTask. java:629)在com. intellij. android. Designer. design Surface。AndroidDesignerEditorPanel6美元

AndroidManifest.xml:(PREMADE)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="de.minding.test" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

主要活动。爪哇:(预制)

package de.minding.test;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

activity_main.xml:(PREMADE)

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:fitsSystemWindows="true"
    tools:context=".MainActivity">

    <android.support.design.widget.AppBarLayout android:layout_height="wrap_content"
        android:layout_width="match_parent" android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar android:id="@+id/toolbar"
            android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_main" />

    <android.support.design.widget.FloatingActionButton android:id="@+id/fab"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>

怎么了??我使用预制的东西,它不起作用?-_-不酷。

请帮忙-留心

共有2个答案

韦智刚
2023-03-14

试着替换

android:theme="@style/AppTheme.AppBarOverlay"

具有

android:theme="@style/Theme.AppCompat.Light"

内部CoordinatorLayout

谯皓君
2023-03-14

尝试为项目选择更高的最低SDK(Lollipop或Marshmallow)

如果你真的需要旧的最小值,试着创建一个空的活动或根本没有活动的项目,然后从那里开始。

 类似资料: