如何使用程序代码实现 Android 单选按钮带有涟漪动画的自动选择?

6
当用户单击不相关的文本视图时,我希望出现一个带有波纹动画的选项按钮被选中。 performClick无法实现这一点。我应该做些什么?
我有一个带有标签和较长描述的选项按钮。

enter image description here

我的布局的一般结构是这样的:
<RadioGroup>

  <RadioButton
      id="@+id/officialBusinessRadio"
      text="Official business" />

  <TextView
      id="@+id/officialBusinessCaption"
      text="This operates under a ..." />

  <!-- ... -->

</RadioGroup>

我已经为文本视图添加了一个 OnClickListener,这样点击标题就会选择单选按钮:
officialBusinessCaption.setOnClickListener(new View.OnClickListener() {
  public void onClick(View v) {
    officialBusinessRadio.performClick();
  }
});

当我点击单选按钮本身或其自己的文本(“Official Business”)时,单选按钮会动画选择并出现涟漪墨水效果。当我点击标题文本(并调用performClick)时,单选按钮仍会动画选择,但不会发生涟漪效果。
有没有更正确的方法来获得这种效果?也就是说,是否有更好的方法将标题文本视图上的点击转发到单选按钮?如果没有,是否有一种直接触发单选按钮程序中涟漪效果的方法?
出于以下原因,我更喜欢不使用字符串资源设置所有文本:
- 我打算以不同的样式为标签和标题进行排版。 - 我希望单选按钮与第一行文本垂直居中对齐。

2
你找到任何解决方案了吗? - Anton Shkurenko
1个回答

3
我遇到了在RecyclerView中填充单选框的问题。我把所有单选框都设置为isClickable = false,因为我根据另一个规则覆盖了它们的选择,但是使选择变成true的方法是:
    radioButton.post {
        radioButton.isChecked = true
    }

Java:

    radioButton.post(new Runnable() {
        @Override
        public void run() {
            radioButton.setChecked(true);
        }
    })

之前,我只使用了setChecked(true),但它并没有起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接