Android基础-ActionBar和ToolBar的使用

文章目录

    • 1. ActionBar
    • 2. ToolBar

Kotlin搭配AndroidKtx,简直爽到爆。

1. ActionBar

  1. Activity 使用或继承App的Theme,
 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        
        "colorPrimary">@color/colorPrimary
        "colorPrimaryDark">@color/colorPrimaryDark
        "colorAccent">@color/colorAccent
    style>

kotlin:

//在mainActivity里的Actionbar就这样获取
// ? 是空安全符号,有了它避免了NullPointerException

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        supportActionBar?.setDisplayHomeAsUpEnabled(true)
        supportActionBar?.show()
        supportActionBar?.title = "Title"
        supportActionBar?.subtitle = "SubTitle"
        supportActionBar?.setIcon(android.R.drawable.ic_dialog_info)
        supportActionBar?.setLogo(android.R.drawable.ic_dialog_map)
    }

Android基础-ActionBar和ToolBar的使用_第1张图片

2. ToolBar

因为要使用toolBar 第一件事就是去掉Android系统本身默认的ActionBar

  1. 将Activity使用或者继承App的Theme改成NoActionBar
   
    <style name="NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
        
        "colorPrimary">@color/colorPrimary
        "colorPrimaryDark">@color/colorPrimaryDark
        "colorAccent">@color/colorAccent
    style>
  1. 增加依赖,在build.gradle里添加对 appcompat的依赖

以下是Kotlin的依赖:

Android基础-ActionBar和ToolBar的使用_第2张图片
3. 在布局文件里使用ToolBar


Android基础-ActionBar和ToolBar的使用_第3张图片

  1. 写menu的xml文件



    
    

    
    


Android基础-ActionBar和ToolBar的使用_第4张图片
5. 重写三个方法能完成对menu的所有操作

  override fun onResume() {
        super.onResume()
        supportActionBar?.setDisplayHomeAsUpEnabled(true)
        supportActionBar?.show()
        supportActionBar?.title = "Title"
        supportActionBar?.subtitle = "SubTitle"
        supportActionBar?.setIcon(android.R.drawable.ic_dialog_info)
        supportActionBar?.setLogo(android.R.drawable.ic_dialog_map)
    }

    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.actions_main, menu)
        return true
    }

    override fun onPrepareOptionsMenu(menu: Menu?): Boolean {
        menu?.getItem(R.id.action_settings)?.title = "被更改的title"
        return super.onPrepareOptionsMenu(menu)
    }

    override fun onOptionsItemSelected(item: MenuItem?): Boolean {
        when (item?.itemId) {
            R.id.action_favorite -> {
                Toast.makeText(applicationContext, "action_favorite",Toast.LENGTH_SHORT).show();
            }
            R.id.action_settings -> {
                Toast.makeText(applicationContext, "action_settings",Toast.LENGTH_SHORT).show();
            }
            else -> super.onOptionsItemSelected(item)
        }
        return true
    }

Android基础-ActionBar和ToolBar的使用_第5张图片

你可能感兴趣的:(Android基础)