1

この質問には多くのトピックがあることに気づき、それらすべてを見てきました。しかし、ListViewの背景が黒のままである理由はまだ非常に混乱しています。背景を変更できるのは、ListView行を構成するLinearLayoutが特定の色に設定されている場合にのみ背景を変更できます。ただし、LinearLayoutの背景を色に設定すると、セレクターを表示できません。

cacheColorHint = "#00000000"、android:scrollingCache = "false"を設定し、android:drawSelectorOnTop="true"も試しました。アプリケーションをテストしたときに画面に変更を表示できなかったため、セレクターの定義または作成に問題がある可能性があると思います。しかし、これはすべて推測です。問題を解決できないため、何が悪いのか本当にわかりません。以下に私のコードを表示できます。

私のセレクター:list_background.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true" android:color="#80ff0000" /> <!-- focused -->
<item android:state_focused="true" android:state_pressed="true" android:color="#80ff0000" /> <!-- focused and pressed-->
<item android:state_pressed="true" android:color="#80ff0000" /> <!-- pressed -->
<item android:color="#ffffffff" /> <!-- default -->
</selector>

私のListView:main.xml

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" 
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:background="#ffffffff">

<!-- List view -->
<ListView android:id="@+id/android:list" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:dividerHeight="0px"
    android:divider="#0099CC"
    android:listSelector="@drawable/list_background"
    android:drawSelectorOnTop="true"
    android:cacheColorHint="#00000000"
    android:scrollingCache="false"/>    

</RelativeLayout>

私のLinearLayout:image_text_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" 
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
android:background="#00000000">

    <ImageView android:id="@+id/feed_image"
    android:layout_width="100dip" 
    android:layout_height="100dip"
    android:paddingTop="5dip"
    android:paddingRight="3dip"
    android:background="#00000000"/>

    <TextView android:id="@+id/job_text" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:textColor="#FF4444"
    android:paddingTop="5dip"
    android:paddingBottom="28dip" 
    android:paddingLeft="8dip"
    android:paddingRight="8dip"
    android:background="#00000000"/>
</LinearLayout>
4

1 に答える 1

1

2つのことがあるかもしれません。

1つ:LinearLayoutを「android:clickable」または「android:focusable」にする必要がある場合があります。これは、デフォルトではレイアウトがクリックできないためです。androidのデフォルトのsimple_list_itemはどこにありますか。

2:カスタム行を処理する場合も、セレクターをリストビューではなくカスタム行(image_text_layout.xml)LinearLayoutの背景に割り当てる必要があると思います。よくわかりません。

于 2012-11-29T02:11:50.007 に答える