Material Design的一些控件

本文介绍了Material Design中的一些关键控件,包括Toolbar作为标题栏的使用,设置颜色属性,以及如何添加菜单项。此外,还讲解了滑动菜单的实现,通过DrawerLayout和NavigationView来创建隐藏菜单。悬浮按钮FloatingActionButton、Snackbar提示工具以及CoordinatorLayout和AppBarLayout的滚动事件处理也得到了阐述。最后提到了SwipeRefreshLayout用于下拉刷新的功能以及CollapsingToolbarLayout实现可折叠标题栏的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

- 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 的子布局。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值