tl;dr:当用户单击不相关的 TextView 时,我希望选择一个带有波纹动画的单选按钮。 performClick 不会这样做。我应该怎么做?
我有一个带有标签和较长描述的单选按钮。
我的布局的一般结构是这样的:
<RadioGroup>
<RadioButton
id="@+id/officialBusinessRadio"
text="Official business" />
<TextView
id="@+id/officialBusinessCaption"
text="This operates under a ..." />
<!-- ... -->
</RadioGroup>
我在 TextView 中添加了一个 OnClickListener,以便点击标题选择单选按钮:
officialBusinessCaption.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
officialBusinessRadio.performClick();
}
});
当我点击单选按钮本身或它自己的文本(“官方业务”)时,单选按钮将动画化为选中状态,并出现波纹墨水效果。当我在标题文本上(并调用了 performClick)时,单选按钮仍会以动画方式选中,但不会出现波纹。
是否有更正确的方法来获得这种效果?也就是说,是否有更好的方法将对标题 TextView 的点击转发到单选按钮?如果没有,是否有直接的方法以编程方式触发单选按钮上的链式 react ?
出于以下原因,我不希望使用字符串资源设置所有文本:
- 我打算以不同的方式设置标签和标题的样式。
- 我希望 radio 与第一行文本垂直居中对齐。
最佳答案
我已经通过在 RecyclerView
中填充 RadioButton
解决了这个问题。所有这些都设置为 isClickable = false
因为我根据另一个规则覆盖了它们的选择,但是将选择触发为 true
的方法是:
Kotlin
radioButton.post {
radioButton.isChecked = true
}
Java:
radioButton.post(new Runnable() {
@Override
public void run() {
radioButton.setChecked(true);
}
})
之前,我只执行 setChecked(true)
,但它不起作用。
关于android - 如何以编程方式检查带有波纹动画的 Android 单选按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38135019/