Android顶部菜单栏,返回按钮、标题布局、右上角菜单

1. 如果你只是想自定义带返回按钮的标题样式

比如下面这个样子
在这里插入图片描述

(1)编写自定的标题布局,这里我只自定义了背景色和文字样式




(2)在对应xxxActivity.java的onCreate方法中,添加如下代码

  //设置顶部菜单栏
        android.support.v7.app.ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
            actionBar.setCustomView(R.layout.title_layout);//设置标题样式
            TextView textView = (TextView) actionBar.getCustomView().findViewById(R.id.display_title);//获取标题布局的textview
            textView.setText(menuTitle);//设置标题名称,menuTitle为String字符串
            actionBar.setHomeButtonEnabled(true);//设置左上角的图标是否可以点击
            actionBar.setDisplayHomeAsUpEnabled(true);//给左上角图标的左边加上一个返回的图标
            actionBar.setDisplayShowCustomEnabled(true);// 使自定义的普通View能在title栏显示,即actionBar.setCustomView能起作用
        }

参考:对android中ActionBar中setDisplayHomeAsUpEnabled和setHomeButtonEnabled和setDisplayShowHomeEnabled方法的理解
https://blog.csdn.net/lovexieyuan520/article/details/9974929
(3)在xxxActivity.java中重写onOptionsItemSelected,给返回按钮添加监听

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                return true;
            default:
                break;
        }
        return super.onOptionsItemSelected(item);
    }

2. 如果你还想添加右上角的弹出菜单

比如下面这个样子
Android顶部菜单栏,返回按钮、标题布局、右上角菜单_第1张图片
(1)在res/menu目录下自定义右上角菜单布局region_right_menu.xml



        
        
        
        

(2)在Activity.java中重写onCreateOptionsMenu方法,绑定右上角布局

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.region_right_menu, menu);
        return true;
    }

(3)在Activity的onOptionsItemSelected方法中,给右上角菜单添加监听

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.region_info_menu:
               Toast.makeText(RegionCollectionActivity.this,"地区信息维护",Toast.LENGTH_SHORT).show();
                break;
            case R.id.device_type_menu:
                Toast.makeText(RegionCollectionActivity.this,"资产类型信息维护",Toast.LENGTH_SHORT).show();
                break;
            case R.id.barcode_collection_menu:
                Toast.makeText(RegionCollectionActivity.this,"开启条码采集",Toast.LENGTH_SHORT).show();
                break;
            case R.id.rfid_collection_menu:
                Toast.makeText(RegionCollectionActivity.this,"开启射频采集",Toast.LENGTH_SHORT).show();
                break;
            case android.R.id.home:
                Toast.makeText(RegionCollectionActivity.this,"返回",Toast.LENGTH_SHORT).show();
                return true;
            default:
                break;
        }
        return super.onOptionsItemSelected(item);
    }

参考:android第一行代码(第2版)
https://editor.csdn.net/md/?articleId=92795719

你可能感兴趣的:(Android,android)