12

我是一名入门级软件开发人员,从这个网站上找到了很多很好的答案,但我似乎找不到如何在 Android 中隐藏复选框的“框”。当用户选择一个选项时,我只想显示复选标记。以下是我最近尝试过的一些事情。

chkSortOrder.setBackgroundResource(android.R.color.transparent); chkSortOrder.setBackgroundResource(android.R.drawable.checkbox_off_background);

这两个仍然显示框。

4

5 回答 5

39

将以下属性放在 XML 中的复选框标记中。

android:button="@android:color/transparent"
于 2013-12-26T03:42:18.980 回答
3

现在已经很晚了,但无论如何,如果它对任何人有帮助的话。如果您想以编程方式将自定义背景设置为 RadioButton,那么您可以像这样设置它,

checkbox.setButtonDrawable(null);
checkbox.setBackgroundResource(R.drawable.your_custom_drawable);
于 2019-03-18T12:17:30.950 回答
2

现在是 2020 年!许多事情都发生了变化。但是,如果您像我一样在这方面苦苦挣扎,并且在这里尝试了所有方法(和其他解决方案)却没有运气,那么也试试这个。我从其他解决方案中得到的就是这个(模拟器,API 16): 在此处输入图像描述

奇怪的行为!两个drawable,右边是我的自定义框,左边是默认的。然后我不小心添加了这个:

app:buttonCompat="@null"

第二个终于消失了!这是完整的定义:

  <CheckBox
        android:id="@+id/cb_fs_ExactSearch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:button="@null"
        android:gravity="center_vertical"
        android:padding="5dp"
        android:text="@string/fs_options_exact"
        android:textColor="@color/textPrimary"
        android:textSize="@dimen/textSmall"
        app:buttonCompat="@null"
        app:drawableRightCompat="@drawable/drw_checkbox" />

您需要将两者都设置buttonbuttonCompat空。

于 2020-04-19T11:12:15.757 回答
0

您还可以在 aCheckBox和 a之间切换TextView。只需使一个视图可见,另一个视图隐藏。这也很有意义,因为CheckBox复选标记周围包含填充。

        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >

            <CheckBox
                android:id="@+id/checkbox"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:checkMark="@null"
                android:checked="true"
                android:gravity="center_vertical"
                android:paddingStart="3dp"
                android:paddingLeft="3dp"
                android:text="My text"
                android:textColor="@color/black"
                android:textSize="12sp"
                />

            <TextView
                android:id="@+id/label"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="My text"
                android:textColor="@color/black"
                android:textSize="12sp"
                />

        </FrameLayout>
于 2019-11-26T08:57:09.237 回答
0

我从 androidx.appcompat:appcompat:1.0.0 更新到 1.1.0 时发现了这个错误。

其他答案对我来说都没有用,因为将按钮属性设置为 @null 或 @android:color/transparent 在 Android API 级别 20 或更低版本上不起作用。

我所做的是将我的 CheckBox 更改为 ToggleButton 并将 textOn 和 textOff 属性设置为空字符串

<ToggleButton
    ...
    android:background="@drawable/custom_selector"
    android:textOff=""
    android:textOn="" />

这样我可以更新到 androidx appCompat 1.1.0

于 2019-10-18T10:22:34.287 回答