先在BaseActivity中配置toolbar
setSupportActionBar(toolbar);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
再配置向上箭头的点击事件(正确写法):
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
//点击向上键
case android.R.id.home:
onBackPressed();
break;
}
return super.onOptionsItemSelected(item);
}
错误原因:
之前系统自动生成的代码中使用的是 case R.id.home,但是运行的时候点击没有反应,改为android.R.id.home之后出现效果,不知道是什么原因…
另外一种解决办法:
在Mainfest中当前Activity声明:android:parentActivityName="MainAcitivity(你需要返回的activity的名字)"
列如:
<activity
android:theme="@style/AppTheme.NoActionBar"
android:name=".ui.NoteDetailsActivity"
android:parentActivityName=".ui.MainActivity"></activity>
问题:
想在toolbar中使用系统自带的图标,如何设置?
解决办法:
在Java代码中的使用方法:
MenuItem.setIcon(android.R.drawable.ic_menu_save);
在xml文件中的使用方法:
android:icon="@android:drawable/ic_menu_save"
系统图标大全:
问题:
使用系统自带图标时,图标的背景颜色如何调整?
(图中的分享图标就是使用的系统自带图标)
软件截图.png
解决办法:
问题:
当menu.xml中的searchview代码为
<item
android:id="@+id/action_search"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="always"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="Search"/>
运行效果为:
软件截图.png
而代码修改为(将app:showAsActio的值修改为"always|collapseActionView"):
<item
android:id="@+id/action_search"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="Search"/>
运行效果为(搜索图标改变):
软件截图.png
网友评论