在我的应用中,我正在使用带选择器状态的自定义按钮。未压缩和集中的状态工作得很好,尽管压迫状态不会起作用。有任何想法吗? 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);
答案 0 :(得分:0)
仅当用户将手指放在按钮上时才按下按钮。如果你想要两个不同的状态,你可以使用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
答案 1 :(得分:0)
使用你已经拥有的XML和Button,我想知道......如果你以编程方式在监听器中切换状态会怎么样?
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(button.isSelected()) {
button.setSelected(false);
} else {
button.isSelected(true);
}
}
});