5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ListViewのlistSelectorを使ってタップしたときに色を変える

Posted at

ListViewのアイテムを選択されたときに色を変える方法は、を用意して、その子要素をタップしたときの色を指定するitemは android:state_pressed をtrueにしたものを用意し、選択していないときの色はデフォルトの色で行います。

ここで、
ListViewのアイテム選択にはバグがあるようです。
listSelectorを下記のようにすると、リストのアイテムを選択したときに
Android2.xだと選択行以外も選択されてしまいます。(Android4.xではこの現象はおきません。)

selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
     <item android:state_pressed="true">  
         <color android:color="#FFFFFF">  
         </color>
     </item>  
     <item>  
         <color android:color="#000000">  
         </color>
     </item>  
</selector>

ここでは、私は何も考えずにcolorを使ってしまったのですが、shapeを使って色を指定すれば回避できるようです。

selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:state_pressed="true">  
        <shape android:shape="rectangle">  
            <solid android:color="#FFFFFFc">  
        </solid></shape>  
    </item>  
    <item>  
        <shape android:shape="rectangle">  
            <solid android:color="#000000">  
        </solid></shape>  
    </item>  
</selector>  
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?