直播源码网站,自定义平台界面,完成各项内容更改
直播源码网站,自定义平台界面,完成各项内容更改
添加依赖:
1 | implementation 'com.android.support:design:30.0.3' |
使用:
1 | <br> <com.google.android.material.button.MaterialButton<br> <br> android:layout_width= "match_parent" <br> android:layout_height= "50dp" <br> android:gravity= "center" <br> android:insetLeft= "50dp" <br> android:insetTop= "5dp" <br> android:insetRight= "50dp" <br> android:insetBottom= "5dp" <br> android:text= "确认办理" <br> android:textColor= "#ffffffff" <br> app:strokeColor= "#000000" <br> app:strokeWidth= "2dp" <br> android:textSize= "24sp" <br> android:theme= "@style/Theme.MaterialComponents.Light.DarkActionBar" <br> android:visibility= "visible" <br> app:backgroundTint= "#FFA54C" /> |
MaterialButton继承AppCompatButton,在原来Button的基础上做了一些扩展,如圆角、描边、前置和后置icon(icon支持设置Size、Tint、Padding、Gravity等),还支持按压水波纹并且设置color,基本能满足日常的需求。
公开属性如下:
1 | <br>属性 描述<br>app:backgroundTint 背景着色<br>app:backgroundTintMode 着色模式<br>app:strokeColor 描边颜色<br>app:strokeWidth 描边宽度<br>app:cornerRadius 圆角大小<br>app:rippleColor 按压水波纹颜色<br>app:icon 图标icon<br>app:iconSize 图标大小<br>app:iconGravity 图标重心<br>app:iconTint 图标着色<br>app:iconTintMode 图标着色模式<br>app:iconPadding 图标和文本之间的间距 |
关于background
在1.2版本以前,MaterialButton只能通过app:backgroundTint属性设置背景色,该属性接收color state list。不能通过android:background设置自定义drawable。
1.2版本后,官方已修复此问题。如果未设置自定义背景,则 MaterialShapeDrawable 仍将用作默认背景。
也就是说,如果按钮背景是纯色,可以通过app:backgroundTint指定;如果按钮背景是渐变色,则需要自己定义drawable,然后通过android:background设置。
注意:如果要使用android:background设置背景,则需要将backgroundTint设置为@empty,否则background不会生效。
1 | <com.google.android.material.button.MaterialButton<br> android:background=”@drawable/custom_background”<br> app:backgroundTint=”@ empty ” /> |
指定@empty后,Android Studio会出现红色警告,可以正常运行,忽略就好。不过既然已经自定义drawable,就没必要使用MaterialButton,直接用普通的Button甚至用TextView就好了。
关于阴影:
MD组件默认都是自带阴影的,MaterialButton也不例外。但是有时候我们并不想要按钮有阴影,那么这时候可以指定style为
style="@style/Widget.MaterialComponents.Button.UnelevatedButton",这样就能去掉阴影,让视图看起来扁平化。
关于theme
在MDC1.1.0以后,使用MaterialButton可能会出现闪退的问题,原因就是使用了MD控件,但是未将them设置为MaterialComponents。解决方法可以有几种:
先在style.xml自定义MaterialComponents_Theme
1 | <style name= "MaterialComponents_Theme" parent= "Theme.MaterialComponents.Light.NoActionBar" ><br> <!-- Customize your theme here. --><br> ...<br> </style> |
方法一:
AndroidManifest里application节点下配置,作用域为整个应用
1 | <br><application<br> ...<br> android:theme= "@style/MaterialComponents_Theme" |
方法二:
只在当前activity配置,作用域为当前activity
1 | <br><activity<br> ...<br> android:theme= "@style/MaterialComponents_Theme" |
方法三:
为每个在使用到MD控件的地方配置,作用域只针对当前控件
1 | <br><com.google.android.material.button.MaterialButton<br>...<br> android:theme= "@style/Theme.MaterialComponents.Light.NoActionBar" /> |
以上就是直播源码网站,自定义平台界面,完成各项内容更改, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现