Android按钮聚焦状态工作,但没有按下



在我的应用程序中,我使用一个带有选择器状态的自定义按钮。未按和集中的状态工作得很好,尽管按下的状态不起作用。什么好主意吗?如果有意义的话,on - click监听器是在片段中实现的。

这是我的选择器代码:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/participants_pressed"
        android:state_pressed="true" />
    <item android:drawable="@drawable/participants_pressed"
        android:state_focused="true" />
    <item android:drawable="@drawable/participants_unpressed" />
</selector>
下面是我的java代码:
Button participantsSelector = new Button(getActivity());
ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(300,300);
participantsSelector.setBackgroundResource(R.drawable.selector_participants);
participantsSelector.setLayoutParams(lp);
participantsSelector.setClickable(true);
participantsSelector.setOnClickListener(this);
participantsGrid.addView(participantsSelector);

按钮只有当用户的手指在上面时才会被按下。如果你想要两种不同的状态,你可以使用ToggleButton。

为您的可绘制:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_pressed="true" /> //currently pressed turning the toggle on
<item android:state_pressed="true" /> //currently pressed turning the toggle off
<item android:state_checked="true" /> //not pressed default checked state
<item /> //default non-pressed non-checked

有了你的XML和按钮,我想知道…如果在侦听器中以编程方式切换状态会怎么样?

button.setOnClickListener(new OnClickListener() {
  public void onClick(View v) {
    if(button.isSelected()) {
      button.setSelected(false);
    } else {
      button.isSelected(true);
    }
  }
});

相关内容

  • 没有找到相关文章

最新更新