先在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