Toolbar使用的时候注意要使用V7包里的
1.Toolbar可以看成是一个ViewGroup就是说可以在ToolBar中放一些其他控件,比如说是TextView 之流。
2.使用的时候貌似不需要setSupportActioBar(),
直接使用findViewById获取实例。
如果使用setSupportActionbar()话就是讲ToolBar当成一个Actionbar去使用起功能。q
3.overflow中menuitem交互
指定这个主题是比较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="石泽远"
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)的点击事件,
本来在
@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);
}
调试log的时候会打印出来内容的,然而并没有打印内容
事实上我漏掉toolbar非常重要的一个操作
setSupportActionBar(toolbar);
这个之前是调用不了的 因为这个需要你的Activity 继承AppCompatActivity才可以
不加上这一句话ToolBar是无法响应ActionBar里面的东西的
对于toolbar设置返回键,并且对返回进行监听:
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;
}
});
网友评论