web-dev-qa-db-ja.com

Androidクリックしたときにビューを強調表示する方法は?

各行がプログラムで拡張される線形レイアウトがあり、クリックしたときに行がListViewのように動作するようにします。つまり、デフォルトのListViewとまったく同じ方法/色で行を強調表示します。これを行うにはどうすればよいですか?

39
Kman

わかりました私はこれを行う方法をついに理解しました...基本的にはスタイルでリンクされたカラーセレクターのようなセレクターを使用して行われますが、「カラー」の代わりに状態のドローアブルを使用し、デフォルトのリストドローアブルを参照できます。これによってリストビューで使用されます:

<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_pressed="true"
    Android:drawable="@Android:drawable/list_selector_background" />      
</selector>

このxmlを私のビューの背景として使用します。

すべてのパブリックデフォルトドローアブルは、ここにあります: http://developer.Android.com/reference/Android/R.drawable.html

57
Kman

次のコマンドを使用して、リストビューのように動作させたいテキストビューでも同じことができます。

<Textview
....
Android:background="@Android:drawable/list_selector_background"
/>
23
davenpcj

これ は、探し始めるのに適した場所かもしれません。

ただし、もう一度実装するのではなく、ListView自体を使用することをお勧めします。

2
st0le

それでも問題が解決しない場合は、UI要素の一部がクリックできない(RelativeLayout)ので、1行追加する必要があることに注意してください。

<RelativeLayout 
    ....
    Android:clickable="true"
    ...
2
Dany

リストビューセットプロパティへ

Android:listSelector="@color/test"

このテストカラーは、好きな透明色を設定します。 16進数の透明色 を使用して、任意の透明色を作成できます。

1
SAndroidD