2012-05-18 55 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