7

ListView Adapterでカスタムの背景色をプログラムで設定しようとしていますが、AndroidのデフォルトのListviewSelectorスタイルを維持したいと思います。

アイテムビューの「SetBacgroundResource」メソッドを使用して背景色を設定しています。

私はAndroid4.0を使用しており、このブログhttp://daniel-codes.blogspot.co.nz/2010/07/how-to-change-listview-rows-background.htmlの例を試しましたが、この例を使用してセレクターを使用していますただし、選択されていない背景色は表示されません。

Android 4.0 ICSでこれを実現するにはどうすればよいですか?

編集:これが私がリストアイテムの背景ドローアブルに使用しているリソースです。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_window_focused="false" android:state_selected="true" android:drawable="@android:color/transparent" /> 
   <item android:state_selected="true" android:drawable="@android:color/transparent" /> 
   <item android:state_pressed="true" android:state_selected="false" android:drawable="@android:color/transparent" /> 
   <item android:state_selected="false" android:drawable="@color/list_item_first" /> 
</selector>

この背景ドローアブルを設定するために使用しているコードは、データプターのGetViewメソッド内にあります。コードは次のとおりです。

convertView.setBackgroundResrouce(R.drawable.list_item_dark);
4

4 に答える 4

4

プロパティandroid:drawSelectorOnTopListViewtrueに設定しようとしましたか?
アイテムの背景を設定し、押すとアイテムが強調表示されるのを見ることができます。

于 2012-11-10T20:45:50.087 に答える
3

これを試してください:

行レイアウトで背景プロパティを設定します

android:background="@drawable/your_selector"

とあなたのlistViewセット

android:listSelector="@drawable/your_selector"
于 2012-11-08T01:40:13.990 に答える
3

カスタムアダプターを作成し、rowView BackgroundColor をそのように設定してみてください (位置が奇数の場合は BLACK、偶数場合は RED)。また、カラーリストをアダプターに送信し、rowView ごとに異なる色を設定することもできます

public View getView(int position, View convertView, ViewGroup parent) {
            View rowView = convertView;
        enter code here

            if(rowView == null)
            {
                if((position % 2)==1){ 
                rowView.setBackgroundColor(Color.BLACK)
                    //colorList :setBackgroundColor( colorList.get(position) )
                }
                 else{
                    rowView.setBackgroundColor(Color.RED)
                }
             }           
            return rowView;
        }
于 2012-11-09T17:32:39.387 に答える
1

このスタイルをListViewに適用してみてください。

<style name="List">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">fill_parent</item>
    <item name="android:background">#FFFFFF</item>
    <item name="android:dividerHeight">1dp</item>
    <item name="android:divider">#CCCCCC</item>
    <item name="android:cacheColorHint">#FFFFFF</item>
    <item name="android:listSelector">#00000000</item>
</style>

そしてあなたのxmlレイアウトではこれは:

<ListView 
    android:id="@+id/listView"
    style="@style/List"
    android:paddingTop="1dp"/>
于 2012-11-13T20:42:11.833 に答える