我决定制作自己的工具栏
所以我删除了常规的ToolBar:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="false"
android:theme="@style/Theme.AppCompat.Light.NoActionBar> //removetollbar
并制作我自己的工具栏
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.Toolbar>
然后我包含在主xml
中<include
layout="@layout/customtoolbar"
android:id="@+id/custombar" >
</include>
并在我设置的代码中:
_CustomToolBar = (android.support.v7.widget.Toolbar)
findViewById(R.id.custombar);
setSupportActionBar(_CustomToolBar);
android.support.v7.widget.Toolbar _CustomToolBar;
现在当应用程序运行自定义工具栏时不存在
请帮忙。
答案 0 :(得分:1)
在<include>
代码中,您已将工具栏的ID设置为@+id/custombar
,但您需要使用R.id.toolbar
进行查找。将该行更改为:
_CustomToolBar = (android.support.v7.widget.Toolbar) findViewById(R.id.custombar);
答案 1 :(得分:0)
没有清楚地提出您的问题,但我仍然会发布如何设置自定义工具栏的代码。
1)My Manifest有NoActionBar主题删除默认工具栏。
2)我的custom_toolbar.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:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="5dp"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
3)方式我将它包含在我的main.xml
中<include layout="@layout/custom_toolbar" />
4)我的Java代码 -
// In onCreate method
android.support.v7.widget.Toolbar _CustomToolBar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(_CustomToolBar);
它运作正常。
所以我们的代码之间存在差异。
1)为您的自定义工具栏提供正确的ID android:id="@+id/customToolbar"
,而不是将其提供给include
。
2)为自定义工具栏指定高度和背景颜色,以便正确显示
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
3)而不是将include id
关联到工具栏,而是链接您的custom toolbar id
findViewById(R.id.customToolbar);