我创建了一个自定义弹出视图,可用于设置优先级。最初,当我尝试设置显示弹出窗口时,我预设了ImageView
with ImageView.pressed(true)
,它由图像的灰色背景显示。
现在,当我单击另一个图像时,我可以注册单击但无法在屏幕上显示更改,即无法将ImageView.Pressed(true)
状态模拟到被按下的图像上。
我创建了一个自定义弹出视图,可用于设置优先级。最初,当我尝试设置显示弹出窗口时,我预设了ImageView
with ImageView.pressed(true)
,它由图像的灰色背景显示。
现在,当我单击另一个图像时,我可以注册单击但无法在屏幕上显示更改,即无法将ImageView.Pressed(true)
状态模拟到被按下的图像上。
出于同样的目的,我使用了 s,并且有一种方法可以为从侦听ImageButton
器调用的一组相关按钮设置状态。onClick()
例如,
private void configurePaletteStrokeWidth(Crayon.StrokeWidth strokeWidth) {
findViewById(R.id.iButtonStrokeWidthSmall).setSelected(false);
findViewById(R.id.iButtonStrokeWidthMedium).setSelected(false);
findViewById(R.id.iButtonStrokeWidthLarge).setSelected(false);
findViewById(R.id.iButtonStrokeWidthXLarge).setSelected(false);
switch (strokeWidth) {
case SMALL:
findViewById(R.id.iButtonStrokeWidthSmall).setSelected(true);
break;
case LARGE:
findViewById(R.id.iButtonStrokeWidthLarge).setSelected(true);
break;
case XLARGE:
findViewById(R.id.iButtonStrokeWidthXLarge).setSelected(true);
break;
case MEDIUM:
findViewById(R.id.iButtonStrokeWidthMedium).setSelected(true);
break;
}
}
每个按钮的 xml 类似于:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_stroke_width_small_tap" android:state_pressed="true"/> <!-- pressed -->
<item android:drawable="@drawable/button_stroke_width_small_tap" android:state_selected="true"/> <!-- selected -->
<item android:drawable="@drawable/button_stroke_width_small_normal" android:state_focused="true"/> <!-- focused -->
<item android:drawable="@drawable/button_stroke_width_small_normal"/> <!-- default -->
</selector>