1.侧滑菜单
①添加依赖(implementation 'com.android.support:design:29.0.2')
②创建布局:DrawerLayout、Toolbar、NavigationView(menu、header)
③设置actionbar:toolbar设置标题、logo、关联toolbar和侧滑
④监听事件:头部监听、侧滑菜单监听、DrawerLayout、Home旋转开关
⑤沉浸式状态栏
设置actionbar
//设置 Logo
toolbar.setLogo(R.mipmap.logo);
// 设置主标题
toolbar.setTitle("Title");
// 设置副标题
toolbar.setSubtitle("Sub Title");
//设置toolbar,将Toolbar设置到界面上
setSupportActionBar(toolbar);
//左边的小箭头(注意某些版本api需要在setSupportActionBar(toolbar)之后才有效果)
toolbar.setNavigationIcon(R.mipmap.back);
//菜单点击事件(注意需要在setSupportActionBar(toolbar)之后才有效果)
toolbar.setOnMenuItemClickListener(onMenuItemClick);
监听事件
//点击头部
View headerView = nv.getHeaderView(0);
View iv = headerView.findViewById(R.id.iv);
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "点击了头部", Toast.LENGTH_SHORT).show();
}
});
//Home旋转开关
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, dl, toolbar, R.string.app_name, R.string.app_name);
dl.addDrawerListener(toggle);
toggle.syncState();
沉浸式状态栏
android:fitsSystemWindows="true"
//在res文件夹下创建values-v21,复制styles.xml并添加属性
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<!--透明状态栏-->
<item name="android:statusBarColor">#00ffffff</item>
</style>
2.选项菜单
①创建选项菜单(
onCreateOptionsMenu
)
②选项菜单的点击事件(onOptionsItemSelected
)
※Fragment
中加setHasOptionsMenu(true)
;
@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menu.add(0, 1, 0, "").setIcon(R.drawable.home_highlight).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
3.上下文菜单
①注册上下文菜单(
registerForContextMenu
)
②创建上下文菜单(onCreateContextMenu
)
③上下文菜单的点击事件(onContextItemSelected
)
❤注意区别:
OptionsMenu是整个界面共用,ContextMenu是注册给某个组件,此组件拥有此菜单,没有注册的组件没此菜单
网友评论