Toolbar使用的時(shí)候注意要使用V7包里的
1.Toolbar可以看成是一個(gè)ViewGroup就是說(shuō)可以在ToolBar中放一些其他控件,比如說(shuō)是TextView 之流。
2.使用的時(shí)候貌似不需要setSupportActioBar(),
直接使用findViewById獲取實(shí)例。
如果使用setSupportActionbar()話就是講ToolBar當(dāng)成一個(gè)Actionbar去使用起功能。q
3.overflow中menuitem交互
指定這個(gè)主題是比較ok的
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
<item
android:id="@+id/zhangke"
android:title="張可"
android:checkable="true"
app:actionLayout="@layout/checkbox_layout"
app:showAsAction="never"/>
<item
android:id="@+id/shizeyuan"
android:title="石澤遠(yuǎn)"
android:checkable="true"
app:actionLayout="@layout/checkbox_layout"
app:showAsAction="never" />
<item
android:id="@+id/zhaoxinhui"
android:title="zxh"
android:checkable="true"
app:actionLayout="@layout/checkbox_layout"
app:showAsAction="never" />
</menu>
如果要在item中加入checkbox 就可以這樣制定然后在layout中指定就可以
6.21
備注:
這次在做的是toolbar menu(overflow)的點(diǎn)擊事件,
本來(lái)在
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.zhangke:
Log.d("ZK", "onOptionsItemSelected: ");
return true;
}
return super.onOptionsItemSelected(item);
}
調(diào)試log的時(shí)候會(huì)打印出來(lái)內(nèi)容的,然而并沒有打印內(nèi)容
事實(shí)上我漏掉toolbar非常重要的一個(gè)操作
setSupportActionBar(toolbar);
這個(gè)之前是調(diào)用不了的 因?yàn)檫@個(gè)需要你的Activity 繼承AppCompatActivity才可以
不加上這一句話ToolBar是無(wú)法響應(yīng)ActionBar里面的東西的
對(duì)于toolbar設(shè)置返回鍵,并且對(duì)返回進(jìn)行監(jiān)聽:
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int id = item.getItemId();
switch (id) {
case android.R.id.home:
finish();
break;
}
return true;
}
});