Material Design 是由 Google 的设计工程师们所开发的一款界面设计语言
Toolbar
首先打开 res/values/themes.xml 文件,指定一个不带 ActionBar 的主题
修改 activity_main.xml 中的代码
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)
}
}
右击 res 目录 - New - Directory,创建一个 menu 文件夹,然后右击 menu 文件夹 - New - Menu resource file,创建一个 toolbar.xml 文件
修改 MainActivity 中的代码
class MainActivity : AppCompatActivity() {
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 -> {
...
}
R.id.delete -> {
...
}
R.id.setting -> {
...
}
}
return true
}
}
滑动菜单 1. DrawerLayout
所谓滑动菜单,就是将一些菜单项隐藏起来,而不是放置在主屏幕上,然后通过滑动的方式将菜单显示出来
2. NavigationView
使用 NavigationView 可以定制滑动菜单
引入依赖
dependencies {
implementation 'com.google.android.material:material:1.1.0'
implementation 'de.hdodenhof:circleimageview:3.0.1'
...
}
在 menu 文件夹创建一个 nav_menu.xml 文件
创建一个 nav_header.xml 文件,放置头像、用户名、邮箱地址这三项内容
修改 activity_main.xml 中的代码
悬浮按钮和可交互提示 1. FloatActionButton
2. Snackbar
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
fab.setOnClickListener { view ->
Snackbar.make(view, "Data delete", Toast.LENGTH_SHORT)
.setAction("Undo") {
...
}
.show()
}
}
}
3. CoordinatorLayout
CoordinatorLayout 是一个加强版的 frameLayout,可以监听其所有子控件的各种事件,并自动帮助我们做出最为合适的响应
下拉刷新
在 app/build.gradle 文件中添加如下依赖
...



