Toolbar

  1. 取消自带ActionBar
// - res/values/styles.xml // ... <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> // ...
  1. activity_main.xml
<androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/design_default_color_primary" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/Theme.AppCompat.Light" tools:ignore="MissingConstraints" />
  1. MainActivity
onCreate() { // ... setSupportActionBar(toolbar) } override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.toolbar, menu) return true } override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.backup -> Toast.makeText(this, "backup", Toast.LENGTH_LONG).show() R.id.delete -> Toast.makeText(this, "delete", Toast.LENGTH_LONG).show() R.id.setting -> Toast.makeText(this, "setting", Toast.LENGTH_LONG).show() } return true }
  1. 添加菜单项
    1. res下新建menu文件夹,新建toolbar资源文件
    2. <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/backup" android:icon="@drawable/ic_backup" android:title="Backup" app:showAsAction="always" /> <item android:id="@+id/delete" android:icon="@drawable/ic_delete" android:title="Delete" app:showAsAction="ifRoom" /> <item android:id="@+id/setting" android:icon="@drawable/ic_setting" android:title="Setting" app:showAsAction="never" /> </menu>
      notion image

滑动抽屉菜单

DrawerLayout

  • activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.drawerlayout.widget.DrawerLayout // ...

NavigationView

<com.google.android.material.navigation.NavigationView android:id="@+id/navView" android:layout_width="match_parent" android:layout_height="match_parent" app:menu="@menu/nav_menu" // 菜单项 app:headerLayout="@layout/nav_header"/> // 头部

悬浮按钮

Flo

badge