android的listview分组显示的时候layout_marginTop失效的解决办法

来源:互联网 发布:python连接oracle失败 编辑:程序博客网 时间:2024/06/18 00:52

        在使用android的ListView组件做类似于通讯录这样的功能时,需要根据A、B、C这样的标题来区来分组显示通讯录中的姓名,本人在做实验过程中遇到了这样一个问题,比如,想让标题item和上边的用户名item中间有个间隙,而组(同个标题下)用户名之间不能有间隙,原本以为很简单,我认为在标题item的最外层LinearLayout中增加一个layout_marginTop属性即可,结果发现一只无效,最后请教了个高手告诉我需要在标题item的顶层LinearLayout中再嵌套一层,然后在第二层中设置这个属性才会有效,最后一试用,果然好了。

        ListView分组显示的代码网上浩如烟海,这里只贴出关键的ListView的的两种item的代码如下:

        标题item的layout,标红的就是嵌入的第二层:

        <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:orientation="vertical">
                  <!-- 必须再嵌套一层LinearLayout,否则layout_marginTop失效 -->
          <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:background="#EDEDED"
                 android:layout_marginTop="15dip"
                 android:orientation="horizontal" >
                <TextView  
             android:id="@+id/shopName"
             android:layout_width="match_parent"  
             android:layout_height="40dip"  
             android:minHeight="30dip"  
             ndroid:gravity="center_vertical"  
         /> 
            </LinearLayout>
           </LinearLayout>

           姓名的item的layout:

            <?xml version="1.0" encoding="utf-8"?>
            <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:background="#FFFFFF"
                 android:orientation="vertical" >
                 <TextView
                       android:id="@+id/goodName"
               android:layout_width = "match_parent"  
               android:layout_height = "match_parent"  
               android:minHeight = "30dip"  
               android:gravity = "center_vertical"  
               android:paddingLeft = "10dip"  
          />
             </LinearLayout>

             最后的效果如图,中间粉红色的间距就是想要的效果:

   

            原本以为Android开发很简单,就平时利用业务时间玩玩,没想到里边的细节门道很多,看来我又自以为是了,哈哈哈!

0 0
原创粉丝点击