首页 > 其他分享 >Android MaterialButtonToggleGroup使用

Android MaterialButtonToggleGroup使用

时间:2023-12-13 23:33:42浏览次数:43  
标签:material MaterialButtonToggleGroup 使用 selectionRequired 选中 按钮 Android id

原文地址: Android MaterialButtonToggleGroup使用 - Stars-One的杂货小窝

觉得单选框不好看,发现了一个Material里的单选按钮组,感觉UI还不错,记下使用

使用

效果:

使用前,得看看是否有material的依赖,如

implementation 'com.google.android.material:material:1.4.0'

PS: 一般新的Android项目创建都是默认带上material组件依赖的

<com.google.android.material.button.MaterialButtonToggleGroup
    android:id="@+id/toggleGroup"
    app:singleSelection="true"
    app:checkedButton="@id/mbLanzou"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:gravity="center"
    android:layout_height="wrap_content">
    <com.google.android.material.button.MaterialButton
        android:id="@+id/mbLanzou"
        android:layout_weight="1"
        style="@style/Widget.MaterialComponents.Button.OutlinedButton"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="蓝奏云解析"/>

    <com.google.android.material.button.MaterialButton
        android:id="@+id/mbLanzouYx"
        android:layout_weight="1"
        android:layout_width="0dp"
        style="@style/Widget.MaterialComponents.Button.OutlinedButton"
        android:layout_height="wrap_content"
        android:text="蓝奏云优享版解析"/>
</com.google.android.material.button.MaterialButtonToggleGroup>
  • checkedButton 默认选中按钮id
  • singleSelection 是否单选
  • orientation 元素排列方向
  • selectionRequired 是否必须要选中

当 selectionRequired 属性设置为 true 时,用户必须选择组中的至少一个按钮。如果用户尝试取消选择所有按钮,MaterialButtonToggleGroup 将自动选择第一个按钮。

当 selectionRequired 属性设置为 false 时,用户可以不选择任何按钮,也可以选择其中的一个按钮。

感觉selectionRequired 是应该是结合多选来使用

MaterialButtonToggleGroup本质上和线性布局LinearLayout差不多,里面的元素也可以使layout_weight权重

关于代码示例:

//获取当前选中的按钮id
toggleGroup.checkedButtonId

//获取按钮id列表
toggleGroup.checkedButtonIds

//监听按钮选中
toggleGroup.addOnButtonCheckedListener { group, checkedId, isChecked ->
    //checkedId为选中按钮id
    
    if (checkedId == R.id.mbLanzou) {
       //判断选中按钮之后逻辑
    } else {
        
    }
}

//选中某个按钮
toggleGroup.check(R.id.mbLanzou)

参考

标签:material,MaterialButtonToggleGroup,使用,selectionRequired,选中,按钮,Android,id
From: https://www.cnblogs.com/stars-one/p/17895915.html

相关文章

  • [转][C#][WPF]原生使用 INotifyPropertyChanged
    在上一篇基础上,我们添加对字段的绑定效果:界面添加:<TextBoxText="{BindingName}"Width="120"Height="31"/>在 MainWindowModel里添加:publicclassMainWindowModel:INotifyPropertyChanged{publiceventPropertyChangedEventHandlerProper......
  • [C#] 使用 NAudio 实现音频可视化
    原文:[C#]使用NAudio实现音频可视化-SlimeNull-博客园(cnblogs.com)预览:捕捉声卡输出:实现音频可视化,第一步就是获得音频采样,这里我们选择使用计算机正在播放的音频作为采样源进行处理:NAudio中,可以借助WasapiLoopbackCapture来进行捕捉:WasapiLoopbackCa......
  • [转][C#][WPF]原生使用 ICommand
    传参这里参考:https://www.cnblogs.com/zhlziliaoku/p/5867556.html界面上添加一个按钮 <ButtonContent="点击"Width="120"Height="31"Command="{BindingshowCommand}"CommandParameter="{BindingRelativeSource={RelativeSourcese......
  • Android开发人员该如何高效学习Flutter
    前言随着移动应用的普及,跨平台开发已经成为开发人员的重要需求。Flutter作为一款流行的跨平台框架。受到了越来越多的关注。对于Android开发人员来说,学习Flutter不仅可以提高开发效率,还可以拓展自己的技能领域。那么,我们该如何高效的学习Flutter呢?一、技术特点Flutter是由Google......
  • 使用java调用Python脚本
    通过使用java中的ProcessBuilder类,可以实现在java代码中调用外部的python代码的功能,以下为具体代码:importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;publicclassJavaCallPython{publicstaticvoidmain(String[]args)......
  • bootstraptable 全事件 触发事件 表格事件及fastadmin 的使用方法案例
     Option事件jQuery事件参数描述onAllall.bs.tablename,args所有的事件都会触发该事件,参数包括:name:事件名,args:事件的参数。onClickRowclick-row.bs.tablerow,$element当用户点击某一行的时候触发,参数包括:row:点击行的数据,$element:tr元素,field:点击列的field......
  • [转]cryptoJs DES_CBC_Pkcs7 转成 Java(对称加密早期协议"DES"现已不安全,仅用于老项
    原文地址:cryptoJsDES_CBC_Pkcs7转成Java-唯学而知-博客园前端DES加密:importcryptoJsfrom'crypto-js';//DES加密functionencrypt(message,key,iv){//字符串转16进制constkeyHex=cryptoJs.enc.Utf8.parse(key);constivHex=cryptoJs.enc.U......
  • 如何判断lib和dll是32位还是64位?答案是使用微软的dumpbin工具,后面讲了如何使用gcc生成
    为什么我会考虑这个问题呢?因为我在使用java去调用一个c的lib库的时候,弹出以下警告:D:\work\ideaworkpaces\jdk21Test001\src\main\java\lib\hello.lib:%1不是有效的Win32应用程序。atjava.base/jdk.internal.loader.NativeLibraries.load(NativeMethod)然后我就在想是不是......
  • 【Azure Key Vault】在Alteryx中使用Azure Key Vault存储账号和密码并实现无交互登录
    问题描述:需要在Alteryx中使用AzureKeyVault,Alteryx能将数据发布到Tableau,需要输入账号和密码,使用AzureKeyVault来替换这个输入账号和密码的过程,是否可以在alteryx中实现呢? 问题解答在AzureKeyVault的资料中,没有找到针对Alteryx的解决方案。但是AlteryxDataConnection......
  • 【Azure Key Vault】在Alteryx中使用Azure Key Vault存储账号和密码并实现无交互登录
    问题描述:需要在Alteryx中使用AzureKeyVault,Alteryx能将数据发布到Tableau,需要输入账号和密码,使用AzureKeyVault来替换这个输入账号和密码的过程,是否可以在alteryx中实现呢? 问题解答在AzureKeyVault的资料中,没有找到针对Alteryx的解决方案。但是AlteryxDataConnec......