2011-07-16 7 views
0

私はリストビューで選択の際の強調表示を避けたいと思っています。背景色は、リストビューの行レイアウトで半透明に設定されています。透明にするほど、Androidのデフォルトのオレンジ色で強調表示されます。私は背景を削除して、このような色を設定した場合、リストビューでハイライトを防止する

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@style/CodeFont" 
    android:id="@+id/text1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textSize="35sp" 
    android:gravity="center_vertical" 
    android:checkMark="?android:attr/listChoiceIndicatorSingle" 
    android:paddingLeft="20dip" 
    android:paddingTop="10dip" 
    android:paddingBottom="10dip" 
    android:cacheColorHint="#00000000" 
    android:background="#AAEBD5A8" 

/> 

private void makeListDefault(ListView listView) { 
    int childCount = listView.getChildCount(); 
    int i = 0; 
    for (i = 0; i < childCount; i++) { 
     View view = listView.getChildAt(i); 
     view.setBackgroundResource(R.drawable.hilight_no_gradient_correct_drawable); 
    } 
} 

それはどのような方法で色には影響を与えないのです。

は、ここでのレイアウトです。 hilight_no_gradient_correct_drawable

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient android:startColor="#FF98FB98" android:endColor="#FF98FB98" 
     android:angle="90" /> 
     <!-- 98FB98 is a shade of green --> 
</shape> 

アイデアはありますか?セレクタで試してみましたが、色には何も影響しないようです。

答えて

0

ListViewの背景アイテムのカスタムカラーを試しましたか?

<ListView 
    android:id="@+id/conversations" 
    android:scrollbars="vertical" 
    android:layout_width="fill_parent" 
    android:cacheColorHint="#000000" 
    android:visibility="visible" 
    android:listSelector="@color/backgroundlistcell" 
    android:dividerHeight="0dip" 
    android:layout_height="wrap_content" 
    android:layout_weight="1"> 
</ListView> 

backgroundlistcell.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector 
xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:state_focused="false" 
    android:state_pressed="false" 
    android:state_selected="false" 
    android:state_enabled="true" 
    android:drawable="@drawable/listcell_enabled" /> 
<item 
    android:state_focused="true" 
    android:drawable="@null" /> 
<item 
    android:state_selected="true" 
    android:drawable="@null" /> 
<item 
    android:state_pressed="true" 
    android:drawable="@drawable/listcell_pressed" /> 
</selector> 

たぶん、あなたは描画可能な属性値を変更する必要がありますが、これは動作するはずです "...." listSelector =に注意してください。

android:listSelector="@android:color/transparent" 

それが強調表示/選択状態のデフォルトの色を防ぐことができます:

+0

ListActivityレイアウトとリストアイテムレイアウトの両方からアンドロイド:listSelector = "@ background/backgroundlistcell"というセレクタを含めて試してみましたが、透明度に関係なくアイテムを完全に透明にしているようです私が使った色。私がそこからハイライトなどをしているので、これに影響を与えるものが私のコードに存在する可能性があります。しかし、私はこれを動作させることができませんでした。 –

1

あなたはのような透明としてlistSelectorを定義することができます。

関連する問題