我是一名入门级软件开发人员,并且从这个网站上找到了很多很棒的答案,但我似乎无法找到如何隐藏Android中复选框的“框”。当用户选择一个选项时,我只想显示复选标记。以下是我尝试过的一些最新内容。
chkSortOrder.setBackgroundResource(android.R.color.transparent); chkSortOrder.setBackgroundResource(android.R.drawable.checkbox_off_background);
这两个仍然显示框。
答案 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):
奇怪的行为!两个可绘制对象,右边是我的自定义框,默认情况下左边是一个。然后我不小心添加了这个:
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" />
您需要将button
和buttonCompat
都设置为空。
答案 4 :(得分:0)
您还可以在CheckBox
和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>