在所有活动中使用工具栏(Android)

我正在使用工具栏来replaceActionBar。 一切都进展顺利有一个问题:

工具栏只显示在主要活动上。

如果我尝试在任何活动上调用工具栏,就像我对主要活动做的那样,当我调用该活动时,应用程序将会崩溃。

如果我尝试膨胀工具栏onCreateOptionsMenu,该活动将崩溃,当我打电话。

我如何在所有活动中调用/使用相同的工具栏,而不仅仅是主要的工具栏。

这里是一些代码段:

public android.support.v7.widget.Toolbar toolbar; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_about); toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.app_bar_id); setSupportActionBar(toolbar); } 

上面的代码可以成功地调用工具栏,但是只有当我在主要活动中使用它时,其他的活动才会崩溃,如果我用上面的方法调用工具栏。

请帮忙吗?

谢谢。

编辑:

在这里请求更多的代码片段:

app_bar.xml:

 <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/actionbarbgcolor" app:popupTheme="@style/popUpTheme"> </android.support.v7.widget.Toolbar> 

themes.xml(styles.xmlreplace):

 <?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools"> <style name="DefaultActionBarTheme" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowNoTitle">true</item> <item name="android:windowActionBar">false</item> <item name="android:textColorPrimary">@color/windowbackgroundcolor</item> <item name="android:windowBackground">@color/windowbackgroundcolor</item> </style> <style name="popUpTheme"> <item name="android:textColor">@color/actionbarbgcolor</item> </style> </resources> 

Solutions Collecting From Web of "在所有活动中使用工具栏(Android)"

我find了解决scheme,我忘了在活动布局文件的其余部分包含工具栏。 所以我打电话给那个活动布局中不存在的工具栏。

我只把它包括在主要活动中,这就是为什么它在那里工作,并在其余部分崩溃。

对于初学者来说,这意味着下面的代码必须存在于你希望工具栏工作的每个布局xml文件中:

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

请注意,“app_bar”只是我称之为我的工具栏的名称,您可以是不同的。

祝你好运。

您可以使用包含工具栏的后续代码创build布局

 <?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="wrap_content" android:fitsSystemWindows="true" tools:context="com.tejariapp.myapplicationtester1.MainActivity"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" 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> </android.support.design.widget.CoordinatorLayout> 

注意高度值,如果你没有设置它的wrap_content值,你可以看到其他元素下面的工具栏,然后在每个布局,你想有工具栏,只需你可以写这个

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