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

        在使用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开发很简单,就平时利用业务时间玩玩,没想到里边的细节门道很多,看来我又自以为是了,哈哈哈!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值