2

レイアウトファイルとしていくつかの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>

メインリスト

エントリーBG ここに画像の説明を入力してください

4

2 に答える 2

1

私は自分で答えを見つけました-リストセレクターからこのandroid:constantSize = "true"を削除しましたが、今では必要なサイズと同じサイズになっています。

于 2012-05-19T14:53:44.353 に答える
0

セレクターの画像が問題になる可能性があります。それらを注意深く見て、それらが同じ高さ、同じパディング、同じコンテンツ領域を持っているかどうかを確認してください。それはあなたの問題を解決するはずです。

于 2012-05-18T03:46:28.677 に答える