- Toolbar:
标题栏控件,类似于 ActionBar 。
使用的话得先把主题设置为 NoActionBar 。
在主题的代码里面 colorPrimary:表示标题栏的颜色;colorPrimaryVariant:标题栏里面的字的颜色;colorOnPrimary:状态栏的颜色。也就是下面这段,当然还有其他的,我也不知道了。
之后在 MainActivity 里面使用 *setSupportActionBar( toolbar )*将Toolbar的实例传入。
在标题栏显示的文字可以在 AndroidManifest.xml 文件中的<activity 里面用 *android:label="?"*修改。
在这个标题栏里面可以加些 menu 。在menu文件夹下创建一个菜单编写几个 按钮 代码,然后在 MainActivity 里面使用 onCreateOptionsMenu(menu: Menu?) 来加载这个菜单文件,然后在 onOptionsItemSelected(item: MenuItem) 方法中来处理各个按钮的点击事件。
- 滑动菜单
可以将一些菜单选项隐藏起来,不显示在主屏幕上,通过滑动将菜单显示出来。这需要用到 DrawerLayout (直译就是 抽屉布局)这个布局方式:一个布局可以放入两个子控件,一个是在主屏幕上显示的内容,另外一个是滑动后显示的内容。第二个子控件也就是滑动的控件需要指定在屏幕的左边还是右边,也可以跟随系统。
官方也建议在主屏幕的标题栏上的左边加入一个导航按钮,点击按钮也可以使滑动菜单展示出来。在 MainActivity 里面使用下面这段代码就可以让导航按钮显示出来了。再写个点击事件打开即可。
supportActionBar?.let { it.setDisplayHomeAsUpEnabled(true) }
在滑动菜单里面可以使用 NavigationView (导航视图)这玩意,它的存在让这个页面实现的更简单。直接添加在 DrawerLayout 布局里面,在它的代码里面可以添加子控件(比如菜单或者其他的布局,用app:" " 添加)。然后在 MainActivity 里面 setNavigationItemSelectedListener() 方法来设置菜单被选中的监听事件
悬浮按钮
FloatingActionButton,用它可以实现悬浮按钮,像 Button 一样使用即可。
Snackbar
是一个提示工具,它和 Toast 的使用场景不同。前者可以和用户交互,后者只是告诉用户发生了什么。
Snackbar 的 make() 方法来创建了 Snackbar 对象。参数和 Toast 一样,但是后面有个动作,可以加点事件(比如照片误删可以这时候撤回这种事件)。
CoodinatorLayout
是 Fragment 的增强版,它可以监听所有的子控件的各种事件并且在做合理的响应事件。比如不会出现 Snackbar 和 FloatingActionButton 堆叠的现象,前提是 FloatingActionButton 使它的子控件,这样他才能监听到
AppBarLayout
是一个垂直方向的 LinearLayout。在它内部做了很多滚动事件的封装,将 Toolbar 放在它内部并添加 app:layout_scrollFlags这个属性,可以实现标题栏的隐藏和显示。
下拉刷新
SwipeRefreshLayout 这个是实现下拉刷新功能的核心。在这个布局下面可以有个 RecyclerView ,等于说是嵌套在 RecyclerView 外一层。之后在 MainActivity 中用 setOnRefreshListener() 这个监听器里面实现下拉刷新。
可折叠标题栏
CollapsingToolbarLayout 仅限于 AppBarLayout 的字布局使用。而 AppBarLayout 又是 CoodinatorLayout 的子布局。