2012-05-18 96 views
2

我有一個列表視圖與一些XML作爲佈局文件。在這個文件中,我有一個線性佈局作爲根,這個線性佈局有一個60dp的高度尺寸。列表選擇器更改我的列表項高度大小

對於這個LinearLayout中我使用列表選擇的背景 - 當列表中的該入口的點擊背景會變成另一種顏色(通過PNG - gredient顏色),而壓。

的問題是,雖然,這樣我的ListView使用給我不同的佈局高度尺寸時。假設我的名單有7個輸入,其中一個輸入(隨機選擇,據我所知)稍高於其餘。

如果我拋棄列表選擇,並且只使用1背景png文件,我得到我所有的enteries相同,因爲他們應該,但是當按下一個條目我就失去了顏色變化。

對此有何想法? 這裏是列表enteries佈局的代碼。

 <?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> 

Main list

entry BG enter image description here

+0

xml中的雙正斜槓不會創建註釋。我把它改成正確的格式,其正確性 –

+2

感謝你 – Yosi199

+0

http://samir-mangroliya.blogspot.in/2012/05/android-sectioned-listview-with-search_6865.html –

回答

1

,我發現自己的答案 - 我已經刪除了此機器人:從列表中選擇constantSize =「true」和現在我得到同樣大小如我應該。

0

您的選擇圖像可能是問題。仔細看看它們,看看它們是否在同一高度,有相同的填充,並且具有相同的內容區域。這應該能解決你的問題。

+0

但我對於2個狀態使用相同的drawable(state_first和state_pressed =「false」)。只有第三個state_pressed =「true」會給我一個不同的drawable,而不是當它發生時。它發生在沒有任何按下的主列表中,並且它們使用相同的繪圖。 – Yosi199

+0

你可以發佈你的圖片和列表的截圖嗎? –

+0

我已添加圖片。 – Yosi199