Android:共享兄弟视图的按下状态

4
我有一个包含两个子元素的布局。我的目标是将整个布局作为一个按钮来使用。每个子元素有不同的颜色以显示按下状态。当我单独按它们时,它们可以正确地显示其按下状态。然而,当其中一个被按下时,我希望它们能显示按下状态。
我的第一思路是使用duplicateParentState,但是父元素似乎永远不会处于按下状态,因为子元素填充了布局。我的下一个想法是使用AddStatesFromChildren,但这只是使父元素显示为按下状态,但不是子元素。最后,我尝试同时使用它们,但那会导致错误。 如何使兄弟视图共享按下状态?

寻求解决同一个问题。代码可以解决,但我想要一个XML解决方案。 - Dmitry Kurilo
2个回答

1

我只晚了4年才看到这个问题,但你的答案接近正确:

  • 将它们都放在一个父布局中
  • 在父布局上设置点击监听器
  • 然后在每个子元素上设置android:duplicateParentState="true"

非常好用!


迟到总比不来好。谢谢! - Barry Fruitman

0
你可以尝试这样做:

Button button = new Button(this);
button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        Button otherButton = (Button) findViewById(R.id.other_button);
        otherButton.setPressed(true);

    }
})

当然,你可以根据需要命名按钮。


很不幸,当 onClick 被调用时,更改按钮状态已经为时过晚。 - Barry Fruitman

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