从Android中的复选框中删除“框”

时间:2013-04-17 14:44:12

标签: android checkbox

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

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

这两个仍然显示框。

5 个答案:

答案 0 :(得分:26)

将以下属性放在XML中的checkbox标签中。

机器人:按钮= “@机器人:彩色/透明”

答案 1 :(得分:1)

已经很晚了,但无论如何,只要能帮助任何人。如果您想以编程方式将自定义背景设置为RadioButton,则可以这样设置

checkbox.setButtonDrawable(null);
checkbox.setBackgroundResource(R.drawable.your_custom_drawable);

答案 2 :(得分:1)

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

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

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

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

这样,我可以更新到androidx appCompat 1.1.0

答案 3 :(得分:1)

现在是2020年!许多事情已经改变。但是,如果您像我一样为此而苦苦挣扎,并且在运气方面尝试了这里的所有内容(以及其他解决方案),那么也可以尝试一下。我使用其他解决方案所获得的一切(仿真器,API 16): enter image description here

奇怪的行为!两个可绘制对象,右边是我的自定义框,默认情况下左边是一个。然后我不小心添加了这个:

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都设置为空。

答案 4 :(得分:0)

您还可以在CheckBoxTextView之间切换。只需使一个视图可见,而另一个视图隐藏即可。这也很有意义,因为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>