東川印記

一本東川,笑看爭龍斗虎;寰茫兦者,度橫佰昧人生。

android ListView内item不支持margin属性

2014年4月26日星期六



listView item margin
在item里直接设置margin=xx不起作用,
   
然后在里面嵌套一个linearLayout感觉很不舒服
于是,找到了
<dc.sdk.view.fragment.sliding.list.ScroListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:cacheColorHint="@color/Translucent"
        />
在listView里面直接加
        android:dividerHeight="10dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
是可以的,但是这是个通用布局。。。。
在代码里手动配置style的话,必须要写一套selector,好吧,懒得写

然后就想在代码里写算了,test了好几次。。。
最后如下

  1. @SuppressWarnings("deprecation")
  2.         LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1);  // , 1是可选写的
  3.         lp.setMargins(10, 0, 10, 0);
  4.         scroListView.setLayoutParams(lp);
  5.         scroListView.setDividerHeight(15);
  6.        
  7.         scroListView.setListViewListener(this);
好吧。。。。。

恩,最后,写进了自定义listView里
  1. /**
  2.      * 设置单个item间距
  3.      * @param left
  4.      * @param top
  5.      * @param right
  6.      * @param bottom
  7.      * @param dividerHeight 两个item之间的
  8.      */
  9.     @SuppressWarnings("deprecation")
  10.     public void setMargin(int left,int top,int right,int bottom,int dividerHeight){
  11.         LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1);  // , 1是可选写的
  12.         lp.setMargins(left, top, right, bottom);
  13.         setLayoutParams(lp);
  14.         setDividerHeight(dividerHeight);
  15.     }
这么写心里舒服多了。。。。


--
senRsl
2014-04-26 15:45
GMT+8 @Beijing Tongzhou

没有评论 :

发表评论