0

に適用される Android スタイルとセレクターの次の定義がありますが、ListViewクリックしても灰色のグラデーションが適用されても効果がありません。クリックするとすぐに青色のグラデーションが表示されます。

この例の作成者は次のように書いています。

これをリスト セレクターに適用します。常に同じグラデーションを表示するのではなく、リスト項目が押されるたびにグラデーションの開始色をグレーから水色に変更する必要があります。2 つの異なるリスト セレクター (1 つはデフォルト状態用、もう 1 つは押された状態用) があるため、それらを別々のファイルに保持する必要があります。

誰かがそれを正しく表示する方法を説明できますか? または、何か不足していますか?
より一般的には、ディスプレイ画面に何が表示されると期待すべきですか? リスト項目をクリックすると、灰色のグラデーションから青色のグラデーションに滑らかに移行するようなものですか?

更新:これは著者が「見る」方法ですが、アイテムをクリックすると、写真の右側のようにしか見えません。作成者は、リスト内のすべてのアイテムをデフォルトで灰色にしたいと考えていると思いますか? または、この状態はリスト ビュー アイテムには適用されませんか?

list_item_default.xml -> GRAY GRADIENT

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <gradient
        android:angle="0"
        android:endColor="#FFFF"
        android:startColor="#AFFF" />
    <stroke
        android:width="1dip"
        android:color="#CCC" />
    <corners android:radius="5px" />
</shape>

list_item_pressed.xml -> ブルーグラデーション

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <gradient
        android:angle="0"
        android:endColor="#FFFF"
        android:startColor="#AA66CCFF" />
    <stroke
        android:width="1dip"
        android:color="#CCC" />
    <corners android:radius="5px" />
</shape>

list_selector.xml

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

スタイル.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="MyMoviesTheme" parent="@android:style/Theme.Black">
    <item name="android:listViewStyle">@style/MyMoviesListView</item>
    <item name="android:windowBackground">@drawable/film_bg</item>
  </style>

  <style name="MyMoviesTextAppearance" parent="@android:style/TextAppearance">
    <!--<item name="android:textStyle">bold</item>-->
  </style>

  <style name="MyMoviesListView" parent="@android:Widget.ListView">
    <item name="android:background">@color/list_background</item>
    <item name="android:listSelector">@drawable/list_selector</item>
    <item name="android:cacheColorHint">@android:color/transparent</item>
    <item name="android:fastScrollEnabled">true</item>
    <item name="android:footerDividersEnabled">false</item>
  </style>

</resources>
4

1 に答える 1

0

文を追加してみてください:</p>

    <item 
    android:state_enabled="true" 
    android:drawable="@drawable/list_item_default"/>
    <item
    android:state_enabled="true"  
    android:drawable="@drawable/list_item_pressed" 
    android:state_pressed="true"/>
于 2014-02-12T13:45:22.670 に答える