1

押されたときにリストアイテムの背景を強調表示するように、背景のドローアブルセレクターを設定しました(ドローアブルがコードで割り当てられていることを除いて、以前に何度も行った方法と同様です)。最初に問題を示してから、私のコードを一番下に置きます。誰かがこれを理解するのを手伝ってくれるなら、私はそれを感謝します!

ここで画面は入力を待っています:

入力待ち

ここでは、1 つのアイテムを押し続けています。アイテムを持ち上げずに画面から指をスライドさせると、次のようになります。

ここに画像の説明を入力

長押ししてから上にスライドしてリストをスクロールすると、表示されるアイテムに押された色が表示されません。

ここに画像の説明を入力

関連する XML は次のとおりです。ここで描画可能な背景を設定しますが、実際にはコードで設定されるため冗長です。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="@dimen/thumbnail_size"
    android:background="@drawable/white_button_background">
...
</Relative...

ドローアブル XML は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:drawable="@color/stitcher_holo_blue_light" android:state_pressed="true"/>
     <item android:drawable="@android:color/white"/>

 </selector>

背景セレクターが配列アダプターに設定されているコードを次に示します。

public MyArrayAdapter(...) {
    super(...);
    mItemBackground = mResources.getDrawable(R.drawable.mybuttonselector);
}

public View getView(..., View convertView, ...) {
    ...
    convertView.setBackgroundDrawable(mItemBackground);//I also tried setBackground()
    ...
}

どんなアイデアでも大歓迎です!

4

0 に答える 0