android - 如何在 Android 中舍入 RadioButton?
问题描述
我正在设计RadioButtons。现在它看起来像
我有问题:
我想以圆圈形式展示我将如何执行此操作?
我希望它的宽度和高度看起来相同,现在它在wrap_content
.
这是我的代码
<RadioGroup
android:id="@+id/llButtons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@+id/btnEigene"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:checked="true"
android:drawableTop="@drawable/ic_account"
android:drawablePadding="5dp"
android:gravity="center"
android:paddingStart="16dp"
android:paddingTop="5dp"
android:paddingEnd="16dp"
android:paddingBottom="5dp"
android:text="@string/Eigene"
android:textColor="@color/radio_flat_text_selector" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@+id/btnKontakte"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:drawableTop="@drawable/ic_contacts"
android:drawablePadding="5dp"
android:gravity="center"
android:paddingStart="16dp"
android:paddingTop="5dp"
android:paddingEnd="16dp"
android:paddingBottom="5dp"
android:text="@string/Kontakte"
android:textColor="@color/radio_flat_text_selector" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@+id/btnAlle"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:drawableTop="@drawable/ic_all"
android:drawablePadding="5dp"
android:gravity="center"
android:paddingStart="16dp"
android:paddingTop="5dp"
android:paddingEnd="16dp"
android:paddingBottom="5dp"
android:text="@string/Alle"
android:textColor="@color/radio_flat_text_selector" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@+id/btnGeloescht"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="4dp"
android:layout_marginLeft="6dp"
android:layout_marginTop="0dp"
android:layout_marginRight="6dp"
android:button="@android:color/transparent"
android:contentDescription="@string/deletedquestions"
android:drawableTop="@drawable/selectorbtnquestions"
android:drawablePadding="-1dp"
android:gravity="center"
android:paddingTop="0dp"
android:scaleX="1.0"
android:scaleY="1.0"
android:text="@string/Gel"
android:textSize="10sp"
android:visibility="gone" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@+id/btnArchiviert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:drawableTop="@drawable/ic_archive"
android:drawablePadding="5dp"
android:gravity="center"
android:paddingStart="16dp"
android:paddingTop="5dp"
android:paddingEnd="16dp"
android:paddingBottom="5dp"
android:text="@string/Archiviert"
android:textColor="@color/radio_flat_text_selector" />
<androidx.appcompat.widget.AppCompatRadioButton
android:id="@+id/btnAus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:drawableTop="@drawable/ic_hidden"
android:drawablePadding="5dp"
android:gravity="center"
android:paddingStart="16dp"
android:paddingTop="5dp"
android:paddingEnd="16dp"
android:paddingBottom="5dp"
android:text="@string/Ausgebl"
android:textColor="@color/radio_flat_text_selector" />
</RadioGroup>
用于背景选择器的 radio_flat_selector.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/radio_flat_selected" android:state_checked="true" />
<item android:drawable="@drawable/radio_flat_regular" />
</selector>
选定按钮的 radio_flat_selected.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="1dp" />
<solid android:color="@color/colorAccent" />
<stroke
android:width="1dp"
android:color="@color/colorAccent" />
</shape>
常规选择器的 radio_flat_regular.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="1dp" />
<solid android:color="#fff" />
<stroke
android:width="1dp"
android:color="@color/colorAccent" />
</shape>
以上 3 个文件代码都将在drawable/
文件夹中。
现在我们还需要Text
颜色选择器来相应地改变文本的颜色。
文本颜色选择器的 radio_flat_text_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/colorAccent" android:state_checked="false" />
<item android:color="@color/text_n" android:state_checked="true" />
</selector>
解决方案
尝试更改android:shape="rectangle"
为android:shape="oval"
推荐阅读
- html - 无法打印 Ionic 3 页面的全部内容
- c++ - 从匿名命名空间中分配值映射抛出 std::bad_alloc
- .htaccess - 嗨,我想知道 .htaccess 文件中 (.*) 和 ([a-zA-Z0-9]+) 之间的区别是什么
- snowflake-cloud-data-platform - 如何将整数数组转换为行?
- database - 在 Ghost 中按受欢迎程度对帖子进行排序
- amazon-web-services - 将 S3 静态 Web 托管内容设为私有
- javascript - 是否可以在没有 .subscribe 方法的情况下从 RxJS 获取值?
- python - 如何使用curl从python中的网络获取数据?
- angular - 在反应形式中动态禁用 formControls
- c# - 一次调用从 Redis 读取多个哈希