HorizontalScrollView とそれに含まれる ImageButton (ImageView も) に問題があります。HorizontalScrollView にデータが入力されると、ドローアブル セレクターを動的に割り当てました。
OnClickListenerをクリックして起動できるので、すべて問題ありません。問題は商品の状態です。ImageButton がクリックされると (タッチされた画面)、正しいドローアブルが表示されますが、指を離すと (タッチされない画面)、押されたイメージではなくデフォルトのイメージが表示されます。静的な描画可能なセレクター (xml セレクター) を割り当てると、同じ問題が発生します。
これは、動的セレクターのコードです。
public static StateListDrawable setStateListDrawable(Context context, TypedArray images){
StateListDrawable states = new StateListDrawable();
try{
states.addState(new int[] {android.R.attr.state_pressed},images.getDrawable(1));
states.addState(new int[] {android.R.attr.state_focused},images.getDrawable(1));
states.addState(new int[] { },images.getDrawable(0));
}catch(Exception e){
int id = context.getResources().getIdentifier("ID1", "array", context.getPackageName());
images = context.getResources().obtainTypedArray(id);
states.addState(new int[] {android.R.attr.state_pressed},images.getDrawable(1));
states.addState(new int[] {android.R.attr.state_focused},images.getDrawable(1));
states.addState(new int[] { },images.getDrawable(0));
}
return states;
}
これは HorizontalScrollView xml です。
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/horizontalScrollSports"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:scrollbars="none"
android:descendantFocusability="blocksDescendants">
<LinearLayout
android:id="@+id/iwm_sports_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</LinearLayout>
</HorizontalScrollView>
よろしくお願いします。私の英語でお詫び申し上げます。