Radiobutton也来做tab标签

Android进阶之UI深度定制系列(二)

                                          Radiobutton也来做tab标签

效果图:

XML布局:

复制代码
<RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/radio0"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/XXX"
            android:button="@drawable/none"
            android:checked="true"
            android:drawableTop="@drawable/yyy"
            android:text="RadioButton" />

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/xxx"
            android:button="@drawable/none"
            android:drawableTop="@drawable/yyy"
            android:text="RadioButton" /> 

        <RadioButton
            android:id="@+id/radio2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/xxx"
            android:button="@drawable/none"
            android:drawableTop="@drawable/yyy"
            android:text="RadioButton" />

    </RadioGroup>
复制代码

 

重要属性:

android:drawableTop,android:button,android:background

随着ADT不断升级,可视化的UI编辑变得更加方便高效,通过Properties面板,能够快捷的查询设置UI组件各种属性,
理解RadioButton是实现个性化定制前提,android:drawableTop表示组件内相对上方的图片资源,默认是没有的;android:button表示我们平时看到的圆圈Radio,是一个drawable资源而不是按钮id;android:background当然表示整个RadioBtton的背景图片。
为了时三个RadioButton能够均匀占据屏幕的宽,设置layout_width为match_parent,同时设置他们的layout_weight为一,即在分配宽度时得到相同的优先级。
优势:
保持选中状态,实现不同视觉效果,而通常的做法只能在单击或触摸时有效果的变化,而本例将实现这种效果的固化,就是利用了RadioButton的checked属性

posted @   小文字  阅读(6250)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示