如何以编程方式检查带有涟漪动画的Android单选按钮?

问题描述 投票:3回答:1

tl; dr:当用户点击不相关的文本视图时,我想要一个带有波纹动画的单选按钮。 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();
  }
});

当我点击单选按钮本身或其自己的文本(“官方商务”)时,单选按钮会动画选择并产生波纹墨水效果。当我在标题文本上面(并且调用performClick)时,单选按钮仍然会动画选择,但不会出现波纹。

有没有更正确的方法来获得这种效果?也就是说,有没有更好的方法将标题文本视图上的点击转发到单选按钮?如果没有,是否有一种直接的方式以编程方式触发单选按钮上的涟漪效应?

我宁愿不使用字符串资源设置所有文本,原因如下:

  • 我打算对标签和标题进行不同的造型。
  • 我希望收音机垂直居中与第一行文字对齐。
android animation radio-button
1个回答
0
投票

我在RadioButton中通过人口RecyclerViews来解决这个问题。所有这些都被设置为isClickable = false,因为我根据另一个规则覆盖他们的选择,但触发选择到true的方式是:

科特林:

    radioButton.post {
        radioButton.isChecked = true
    }

Java的:

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

之前,我只做setChecked(true)而且它不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.