自定义工具栏不在

时间:2018-02-27 21:20:17

标签: java android android-layout material-design android-toolbar

我决定制作自己的工具栏

所以我删除了常规的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;
  

现在当应用程序运行自定义工具栏时不存在

请帮忙。

2 个答案:

答案 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);

它运作正常。

enter image description here

所以我们的代码之间存在差异。

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);