我正在尝试让我的操作栏显示图标,并且在导航抽屉的两种状态(打开和关闭)时都不显示任何标题
我阅读了developers android上有关如何在抽屉可见时修改操作栏内容的文档。正如页面所说,我创建了ActionBarDrawerToggle
的实例并设置了图标并将标题设置为null。但是,当我绘制导航抽屉时,我仍然无法看到任何图标和应用标题。以下是我在活动的onCreate
中使用的代码
mToggle = new ActionBarDrawerToggle(
this,
drawerLayout,
R.string.drawer_open_or_close,
R.string.drawer_open_or_close) {
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
getActionBar().setTitle(R.string.drawer_open_or_close);
getActionBar().setIcon(R.drawable.icon_144);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
getActionBar().setTitle(R.string.drawer_open_or_close);
getActionBar().setIcon(R.drawable.icon_144);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
正如您所看到的,在完全打开和完全关闭状态下,我已将操作栏标题设置为R.string.drawer_open_or_close
,这是一个空字符串。我也在两种情况下都设置了应用程序图标。我在这里缺少什么?
编辑:我忘记将抽屉切换设置为DrawerListener
,我做了
drawerLayout.setDrawerListener(mToggle);
现在,当我打开导航抽屉时,应用程序强制关闭,日志猫说 <{1}}
java.lang.NullPointerException
编辑2:我想我们不能将空字符串作为标题
getActionBar().setTitle(R.string.drawer_open_or_close);
答案 0 :(得分:0)
我不知道这是否是最佳方式,但我最终使用自定义工具栏,然后直接使用findViewById()
操纵图标和标题。我使用了我在每个活动布局中包含的常用工具栏。
<ImageView
android:id="@+id/toolbarLogo"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:src="@drawable/logo"
android:adjustViewBounds="true"
android:padding="2dp"
android:visibility="gone"
/>
<TextView
android:id="@+id/toolbarTitle"
android:textAppearance="@android:style/TextAppearance.Theme"
android:textColor="@color/titleTextColor"
android:textSize="18sp"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:singleLine="true"
/>
</android.support.v7.widget.Toolbar>
然后我设置了我需要的东西:
// Set the custom toolbar
android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
setSupportActionBar(toolbar);
toolbar.setTitle("");
}
TextView title = (TextView) findViewById(R.id.toolbarTitle);
title.setText(getString(R.string.app_long_name));
title.setTextColor(getResources().getColor(R.color.colorPrimary));
希望能给你一些想法。