0

カスタム コントロールを開発していて、選択した項目を強調表示するために ListView コントロールが使用するのと同じ色を使用したいと考えています。

context.getResources().getDrawable(android.R.drawable.list_selector_background) ビューで使用してから使用しようとしましsetBackgroundDrawable()たが、背景はまだ透明です。

状態を使用したくありません。コントロールで背景として使用できる色の値またはドローアブルが必要です。

助けてください!

4

3 に答える 3

0

リスト セレクター ドローアブルは、(通常) デフォルト状態では透過的です。したがって、最初に状態を変更する必要があります。

押された状態は、たとえば次のように使用できます。

Drawable drawable = context.getResources().getDrawable(android.R.drawable.list_selector_background);
drawable.setState(new int[] {android.R.attr.state_pressed});
x.setBackgroundDrawable(drawable);

あなたの見解はどこxにありますか。

于 2013-06-28T00:38:06.610 に答える
0

このように試すことができます。

たとえば、以下のコード int visiblePosition = listview.getFirstVisiblePosition();を使用して、リスト アイテム ビューを取得する必要があります。 View view = listview.getChildAt(1 - visiblePosition);

// 特定のリストビュー アイテムの色を取得して設定するには、
View newView = listview.getChildAt(5 - visiblePosition);
newView.setBackgroundColor(((ColorDrawable) view.getBackground()).getColor());

于 2014-06-20T07:05:14.997 に答える