标签:
在使用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开发很简单,就平时利用业务时间玩玩,没想到里边的细节门道很多,看来我又自以为是了,哈哈哈!
版权声明:本文为博主原创文章,未经博主允许不得转载。
android的listview分组显示的时候layout_marginTop失效的解决办法
标签:
原文地址:http://blog.csdn.net/achilles12345/article/details/47803233