【问题标题】:How to properly size radiobuttons in radiogroup?如何正确调整单选按钮的大小?
【发布时间】:2019-03-19 15:53:45
【问题描述】:

编辑:作为测试,我一直在为单选按钮和背景使用固定尺寸:

android:layout_height="40dp" android:layout_width="40dp"

显然,结果是向左溢出。


我正在使用一个 GridLayout,其中包含跨越我网格所有列的 radioGroups。 我想让所有单选按钮的大小相等并占据所有可用的位置。

您可以看到单选组(在 Visual Studio for Mac 设计器中选择)占用了下图中的所有可用空间,但没有占用按钮:

每个单选按钮都是一个自定义按钮,它显示一个介于 1 和 10 之间的数字,并在选中时用颜色圈起来。

这里是 axml 代码:

<?xml version="1.0" encoding="UTF-8" ?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:columnCount="10" android:orientation="horizontal">
    <RadioGroup android:id="@+id/qol_criteria1_radio_group" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal">
            <RadioButton android:id="@+id/qol_criteria1_score1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="1" android:tag="1" />
            <RadioButton android:id="@+id/qol_criteria1_score2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="2" android:tag="2" />
            <RadioButton android:id="@+id/qol_criteria1_score3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="3" android:tag="3" />
            <RadioButton android:id="@+id/qol_criteria1_score4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="4" android:tag="4" />
            <RadioButton android:id="@+id/qol_criteria1_score5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="5" android:tag="5" />
            <RadioButton android:id="@+id/qol_criteria1_score6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="6" android:tag="6" />
            <RadioButton android:id="@+id/qol_criteria1_score7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="7" android:tag="7" />
            <RadioButton android:id="@+id/qol_criteria1_score8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="8" android:tag="8" />
            <RadioButton android:id="@+id/qol_criteria1_score9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="9" android:tag="9" />
            <RadioButton android:id="@+id/qol_criteria1_score10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/qol_score_background" android:button="@android:color/transparent" android:checked="false" android:text="10" android:tag="10" />
        </RadioGroup>
    </GridLayout>

还有drawables:

qol_score_background

<?xml version="1.0" encoding="UTF-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@drawable/b"
        android:state_checked="true"
        android:state_pressed="true" />
    <item
        android:drawable="@drawable/a"
        android:state_pressed="true" />
    <item
        android:drawable="@drawable/a"
        android:state_checked="true" />
    <item
        android:drawable="@drawable/b" />
</selector>

a.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" >
        <corners
            android:radius="5dp" />
        <solid
            android:color="#fff" />
        <stroke
            android:width="2dp"
            android:color="#53aade" />
    </shape>

b.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" >
        <corners
            android:radius="5dp" />
        <solid
            android:color="#fff" />
        <stroke
            android:width="2dp"
            android:color="#555555" />
    </shape>

我不得不说我很难调整元素大小。任何帮助表示赞赏。

【问题讨论】:

  • 你能不能先用固定的宽度和高度代替wrapcontent,然后检查是否有任何变化。
  • 收音机消失了
  • 尝试为a.xmlb.xml 中的形状赋予android:layout_height=”40dp” android:layout_width=”40dp” 的固定大小
  • 还是没有变化
  • 你能用这些变化更新问题吗?

标签: android xamarin.android


【解决方案1】:

Radio-Group 允许孩子有权重,为每个孩子设置以下属性Radio-Button 将平均设置每个孩子的宽度。

<RadioButton 
android:id="@+id/my_rad_1" 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:background="@drawable/qol_score_background"
android:button="@android:color/transparent" 
android:checked="false" 
android:text="1" 
android:tag="1" />

【讨论】:

    【解决方案2】:

    解决此问题的最佳方法是使用 AppCompat RadioButtoninstead:

    <android.support.v7.widget.AppCompatRadioButton
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     .
     .
     . />
    

    添加此问题后,如果它仍然可以恢复,则不应发生此问题。

    【讨论】:

    • 此更改仍然存在同样的问题
    • 您可以尝试删除背景,然后尝试看看它的外观吗?
    • 再一次,没有变化。
    猜你喜欢
    • 2012-05-24
    • 1970-01-01
    • 2016-07-30
    • 2011-05-30
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    相关资源
    最近更新 更多