如何启用单选按钮但文本看起来已禁用

时间:2017-08-29 11:24:42

标签: android

我想要一些禁用了文字的单选按钮,但单选按钮看起来很正常。

用户可以单击单选按钮并显示有关未来版本的一些戏弄,但我还想清楚地显示哪些功能尚不可用。

这是一张图片:

enter image description here

到目前为止我的代码我实际上希望有更好的解决方案,但如果不是这样,则下面的代码会出现以下问题:

  • 由于测试无线电不在无线电组布局下,因此不会取消选中其他兄弟姐妹,

  • 因为测试实际上是2个无线电(一个是按钮而不是文本,另一个是没有按钮的文本),单击文本不会检查按钮!这实际上很重要!

  • 看起来写一行以上会换行,但它会超出线性布局几个像素。

    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Normal, unchecked" />
    
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Normal, unchecked" />
    
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="Normal, checked" />
    
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:enabled="false"
            android:text="Disabled, unchecked" />
    
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:checked="true"
            android:enabled="false"
            android:text="Disabled, checked, also big line saijdhnasoidasokdmokasmdokasmdkmasdplmaslk;dmsal;kdmas;lmdl;asmdl;mas;ldmasl;dmaslkmdksamdasmdlka" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
    
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
    
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:enabled="false"
                android:text="Test, unchecked, also big line saijdhnasoidasokdmokasmdokasmdkmasdplmaslk;dmsal;kdmas;lmdl;asmdl;mas;ldmasl;dmaslkmdksamdasmdlka" />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
    
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true" />
    
            <RadioButton
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:enabled="false"
                android:text="Test, checked" />
        </LinearLayout>
    
    </RadioGroup>
    

2 个答案:

答案 0 :(得分:0)

enter image description here

使用textcolor属性

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="test"
        android:textColor="#AAA"/>

答案 1 :(得分:0)

您可以使用getCurrentTextColor()获取颜色,然后使用单选按钮上的setTextColor(color)

    RadioButton checkbox=(RadioButton) getView().findViewById(R.id.first);
    checkbox.setEnabled(false);
    int color=checkbox.getCurrentTextColor();
    checkbox.setEnabled(true);
    checkbox.setTextColor(color);