web-dev-qa-db-ja.com

Android ListViewで選択したアイテムのスタイルを設定するにはどうすればよいですか?

私はAndroid初心者で、UIの側面を学ぼうとしていますが、頭を悩ませています。今のところ、次のようになっています。

breeds_listing.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="wrap_content" Android:layout_height="wrap_content">
    <ListView Android:id="@+id/breedsListView"
        Android:layout_width="fill_parent" Android:layout_height="fill_parent"
        Android:dividerHeight="0px" Android:divider="#00000000"></ListView>
</LinearLayout>

breeds_listing_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="wrap_content" Android:layout_height="wrap_content"
        Android:background="@drawable/list_item_background"
    Android:orientation="horizontal" >
    <TextView Android:id="@+id/allbreeds_single_item"
        Android:layout_width="fill_parent" Android:layout_height="fill_parent"
        Android:gravity="center_horizontal"></TextView>
</LinearLayout>

list_item_background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <solid Android:color="#043402" />
    <stroke Android:width="3dp" color="#ffff8080" />
    <corners Android:radius="8dp" />
    <padding Android:left="10dp" Android:top="10dp" Android:right="10dp"
        Android:bottom="10dp" />
</shape>

私が理解するのに苦労しているのは、選択したアイテムをどのようにスタイル設定するかです。現時点では、選択したアイテムの背景はひどくオレンジ色で、丸みを帯びた緑色の長方形の下にオレンジ色の輪郭効果があります。私はベストプラクティスに沿った行動をとっていないと確信しているので、提案や改善をいただければ幸いです。

どうもありがとう、D。

14
codedog

私はこれをします :

 <selector xmlns:Android="http://schemas.Android.com/apk/res/Android">

   <item Android:state_pressed="true">
       <shape  >
         <solid Android:color="#929292" />
       </shape>
   </item>



   <item>
     <shape  >
        <solid Android:color="#FFFFFF" />
     </shape>
   </item>

 </selector>

したがって、このプロパティを使用できますAndroid:state_pressed="true"

私の例では、セルの背景は白のみで、押すと灰色になります。

お役に立てば幸いです。

27
William Remacle

StateListDrawable を使用する必要があります。

ListViewアイテムの例を見つけることができます ここ

アイテムを選択したときに特定の色/描画可能にする場合は、Android:state_focused="true"を使用します。

3
Edi