7

で実装ListViewしていますandroid:listSelector

<style name="ListView" parent="@android:style/Widget.ListView">
    <item name="android:cacheColorHint">@color/transparent</item>
    <item name="android:divider">@drawable/divider</item>
    <item name="android:dividerHeight">1px</item>
    <item name="android:listSelector">@color/red</item>
</style>

選択は正常に機能しますが、スクロールを開始すると、listSelector上または下にランダムにハングしますListView。助けていただければ幸いです。

ハングリストセレクター

4

1 に答える 1

4

主な問題は、Drawables を使用する代わりに単色を使用していることです。ソリッドカラーを設定すると、ホールドの問題が発生するのは、レイアウトフレームワークの欠点です。

として使用しているコード:

<item name="android:listSelector">@color/red</item>

次のように使用する必要があります。

    <item name="android:listSelector">@drawable/list_view_selector</item> 

上に書いたドローアブルをセレクタータグで囲む必要があります。

list_view_selector のコードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_enabled="true" 
     android:state_pressed="true" android:drawable="@drawable/background_selected" />
    <item android:state_enabled="true"
     android:state_focused="true" android:drawable="@drawable/background_selected" />
    <item android:state_enabled="true"
     android:state_selected="true" android:drawable="@drawable/background_selected" />

</selector>

注意:無地のままでは使用できません。各色調のセレクターを次のように作成する必要があります。

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

    <gradient
        android:angle="90"
        android:centerColor="#ff0000"
        android:endColor="#ff0000"
        android:startColor="#ff0000" />

</shape>

私はこれを最後に確認しました。ワーキングパーフェクト!!

于 2013-01-15T07:14:04.260 に答える