Menu

作者: HOLLE_karry | 来源:发表于2020-03-19 16:44 被阅读0次

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

    相关文章

      网友评论

          本文标题:Menu

          本文链接:https://www.haomeiwen.com/subject/yiskyhtx.html