• Android


    ### 取消
    ActionBar - App标题栏-继承Activity
    主题基础修改 - NoActionBar
    ...
    <style name="AppThem" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    ...
    
    主题配置 item项
    
    ...
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">false</item>
    </style>
    
    ...
    java设置 - 如果主题隐藏了,则获取不到对象
    ActionBar actionBar = getSupportActionBar();
    actionBar.hide();
    ...
    
    
    ##### 替换 和设置
    ActionBar 不够灵活-自定义不强,采用ToolBar插件替换
    替换机制 - 组件 和属性 nav + title + menu
    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:layout_scrollFlags="scroll|enterAlways|snap"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
    
    设置组件替换ActionBar
     @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
    	//2-1
    	Toolbar toolbar = findViewById(R.id.toolbar);
    	// toolbar.setTitle("Java中第二次设置");
    	setSupportActionBar(toolbar);
    
    	//开启 nav ,设置nav图标
    	ActionBar actionBar = getSupportActionBar();
    	if (actionBar != null) {
    	    actionBar.setDisplayHomeAsUpEnabled(true);
    	    actionBar.setHomeAsUpIndicator(R.drawable.ic_menu);
    	}
    
    ....
    
    用onCreateOptionsMenu方法添加menu
    //2-2
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    	// return super.onCreateOptionsMenu(menu);
    
    	//渲染 menu 板块
    	getMenuInflater().inflate(R.menu.toolbar, menu);
    	return true;
    }
    
    
    用onOptionsItemSelected给菜单选项绑定事件
    //2-3
    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        // return super.onOptionsItemSelected(item);
        switch (item.getItemId()) {
            case R.id.backup:
                Toast.makeText(this, "back", Toast.LENGTH_SHORT).show();
                break;
            case R.id.delete:
                Toast.makeText(this, "delete", Toast.LENGTH_SHORT).show();
                break;
            case R.id.setting:
                Toast.makeText(this, "setting", Toast.LENGTH_SHORT).show();
                break;
            case android.R.id.home:
                drawerLayout.openDrawer(GravityCompat.START);
                break;
            default:
        }
    
        return true;
    }
    

      

    另外Toolbar常和 AppBarLayout使用

    Android学习之基础知识十五 — 最佳UI体验(Material Design实战) - 叶是风的眼泪 - 博客园 (cnblogs.com)

  • 相关阅读:
    PHP返回随机颜色
    SQL Server 系统表介绍:sys.dm_exec_requests
    ORA27300 ORA27301 ORA27302 ORA27157
    Linux的subversion安装配置
    批处理计算n天前\后的日期
    Linux下vsftp配置
    RedHat Linux 5企业版开启VNCSERVER远程桌面功能
    WAS 6.1命令行(静默)安装
    五板斧封杀Windows操作系统默认共享(图)
    Select Top在不同数据库中的使用用法:
  • 原文地址:https://www.cnblogs.com/heheisme/p/15507941.html
Copyright © 2020-2023  润新知