レイアウトファイルとしていくつかのxmlを含むlistViewがあります。このファイルでは、ルートとしてlinearlayoutがあり、この線形レイアウトの高さは60dpです。
このlinearlayoutの背景には、リストセレクターを使用します。リスト内のこの特定のエントリをクリックすると、押すと背景が別の色に変わります(pngを介して-原色)。
ただし、このように使用すると、listViewのレイアウトの高さのサイズが異なります。私のリストに7つのエンターテインがあるとしましょう。このエンターテインメントの1つ(私が知る限りランダムに選択されます)は他のエンターテインメントより少し背が高いです。
リストセレクターを捨てて、背景pngファイルを1つだけ使用すると、すべての入力が同じように表示されますが、入力を押すと色の変化が失われます。
これについて何か考えはありますか?これがリスト入力レイアウトのコードです。
<?xml version="1.0" encoding="utf-8"?>
<!-- The selector for this LinearLayout (@drawable/list_selector) -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:id="@+id/layoutBG"
android:layout_height="wrap_content"
android:background="@drawable/list_selector"
android:paddingTop="1dp"
android:paddingBottom="1dp"
android:orientation="horizontal" >
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="30dp"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:shadowColor="@color/white"
android:shadowDx="60"
android:shadowRadius="60" >
<TextView
android:id="@+id/rawId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:paddingLeft="3px"
android:shadowColor="@color/black"
android:shadowDx="2"
android:shadowRadius="2"
android:textColor="@color/white"
android:textSize="18dip" />
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="100dp"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:shadowColor="@color/white"
android:shadowDx="60"
android:shadowRadius="60" >
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:shadowColor="@color/white"
android:shadowDx="60"
android:shadowRadius="60" >
<TextView
android:id="@+id/Info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:paddingLeft="3px"
android:shadowColor="@color/black"
android:shadowDx="2"
android:shadowRadius="2"
android:text="@string/info"
android:textColor="@color/Green2"
android:textSize="15dip" />
<TextView
android:id="@+id/dateDisp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:paddingLeft="3px"
android:shadowColor="@color/black"
android:shadowDx="2"
android:shadowRadius="2"
android:text="Date"
android:textColor="@color/white"
android:textSize="15dip" />
<TextView
android:id="@+id/day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:paddingLeft="3px"
android:shadowColor="@color/black"
android:shadowDx="2"
android:shadowRadius="2"
android:text="Day"
android:textColor="@color/white"
android:textSize="15dip" />
</LinearLayout>
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="75dip"
android:layout_height="wrap_content"
android:orientation="vertical"
android:shadowColor="@color/white"
android:shadowDx="60"
android:shadowRadius="60" >
<TextView
android:id="@+id/timestarted"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:paddingLeft="3px"
android:shadowColor="@color/black"
android:shadowDx="2"
android:shadowRadius="2"
android:text="@string/timeStarted"
android:textColor="@color/Green2"
android:textSize="15dip" />
<TextView
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:paddingLeft="3px"
android:shadowColor="@color/black"
android:shadowDx="2"
android:shadowRadius="2"
android:textColor="@color/white"
android:textSize="15dip" />
<TextView
android:id="@+id/finish"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:paddingLeft="3px"
android:shadowColor="@color/black"
android:shadowDx="2"
android:shadowRadius="2"
android:textColor="@color/white"
android:textSize="15dip" />
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:shadowColor="@color/white"
android:shadowDx="60"
android:shadowRadius="60" >
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical"
android:shadowColor="@color/white"
android:shadowDx="60"
android:shadowRadius="60" >
<TextView
android:id="@+id/hourMin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="right"
android:paddingLeft="5px"
android:shadowColor="@color/black"
android:shadowDx="2"
android:shadowRadius="2"
android:text="@string/duration"
android:textColor="@color/Green2"
android:textSize="15dip" />
<TextView
android:id="@+id/shiftDisp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="right"
android:paddingLeft="5px"
android:shadowColor="@color/black"
android:shadowDx="2"
android:shadowRadius="2"
android:text="ShiftDisp"
android:textColor="@color/white"
android:textSize="15dip" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
The list selector xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:constantSize="true" android:dither="true">
<item android:drawable="@drawable/li2" android:state_first="true"/>
<item android:drawable="@drawable/liner2" android:state_pressed="true"/>
<item android:drawable="@drawable/li2" android:state_pressed="false"/>
</selector>