复选框按钮设置为null时的涟漪效应位置

时间:2016-01-26 11:29:11

标签: android android-layout

复选框按钮设置为null时的连锁反应问题:

使用的样式

.less

这是包含单选按钮的无线电组。

<style name="MyRow">
<item name="android:button">@null</item>
<item name="android:drawableRight">@drawable/abc_btn_radio_material</item>
<item name="android:drawableEnd">@drawable/abc_btn_radio_material</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:padding">@drawable/dafaultPadding</item>

当android:button属性设置为某个drawable时,Ripple动画按预期工作。 如果为null,则它在Marshmallow上具有此行为(行中间的涟漪)。

Click Here to see the image

在棒棒糖中正常工作,除了它没有边界,并且波纹扩展到整个窗口。

在我的脑海中解决这个问题的唯一方法是为每个包含radiobutton左侧的textview的行创建自定义视图。 但是通过这种方式,我将不得不创建一个类似怪物的控制器(当我按下textview时选择复选框),我将失去无线电组的所有优点。

enter image description here

4 个答案:

答案 0 :(得分:4)

尝试使用以下样式作为单选按钮:

<style name="RadioButton">
    <item name="android:background">?selectableItemBackground</item>
    <item name="android:button">@null</item>
    <item name="android:drawableRight">?android:attr/listChoiceIndicatorSingle</item>
    <item name="android:drawablePadding">@dimen/yourDrawablePadding</item>
    <item name="android:padding">@dimen/buttonPadding</item>
</style>

首先,?selectableItemBackground将解决您的涟漪问题。

还可以使用?android:attr/listChoiceIndicatorSingle作为drawable,以便在选中/取消选中单选按钮时允许漂亮的素材动画。

您可以看到以下差异(Google Pixel XL,7.1.2):

enter image description here

答案 1 :(得分:0)

我有类似的问题。尝试在您的样式中设置<item name="android:background">?attr/selectableItemBackground</item>或使用自定义波纹并进行设置。

答案 2 :(得分:0)

我对radiobutton也有同样的问题,尝试用android:paddingLeft =“10dp”添加android:button =“@ drawable / radiobutton_drawable”并删除android:drawableRight

答案 3 :(得分:0)

设置单选按钮背景透明

android:background="@android:color/transparent"