Menu

2020-03-19  本文已影响0人  HOLLE_karry

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是注册给某个组件,此组件拥有此菜单,没有注册的组件没此菜单

上一篇下一篇

猜你喜欢

热点阅读