Android TitleBar仍然在设计视图中显示,即使我在styles.xml中删除它

时间:2016-03-27 03:27:06

标签: android xml android-toolbar

我正在使用活动,因此我必须创建自己的工具栏并添加它。唯一的问题是,即使我相应地修改了styles.xml,也没有删除当前的默认标题栏。

这是我的档案:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

</style>

我已经明确说明了“Theme.AppCompat.Light.NoActionBar”

我甚至在我的一个活动课程中试过这个:

public class ViewCars extends AppCompatActivity {
     @Override
        protected void onCreate(Bundle savedInstanceState) {
            this.requestWindowFeature(Window.FEATURE_NO_TITLE);
            super.onCreate(savedInstanceState);
            setContentView(R.layout.carspage);
        }
}

它崩溃了!

这是Android Studio的实际错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{benj.samplesapp/benj.samplesapp.ViewCars}: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
                                                                        at android.app.ActivityThread.access$600(ActivityThread.java:141)
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                        at android.os.Looper.loop(Looper.java:137)

我的机器人清单:

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

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

如何删除旧的?

1 个答案:

答案 0 :(得分:0)

我认为问题在于您定义了一个没有操作栏的样式但从未将您的活动实际应用到您的清单文件中,而是将@style/Theme.AppCompat.Light应用于整个应用程序,这就是您的活动获得操作的原因酒吧。所以在您的清单文件中将您的活动声明更改为

    <activity
         android:name=".MainActivity"
         android:label="@string/app_name" 
         android:theme:"@style/AppTheme" >
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

并从ViewCars类中删除this.requestWindowFeature(Window.FEATURE_NO_TITLE);