读书人

个人化(Style/Theme)之ListView

发布时间: 2012-09-05 15:19:34 作者: rapoo

个性化(Style/Theme)之ListView
1)Item分隔栏


只需要在Adapter中Override isEnabled Method, 在getView中设置其他相关的即可。

public class XXXItemAdapter extends BaseAdapter{private LayoutInflater minflater;private List<CommonViewHolder> list;public FinanceListItemAdapter(LayoutInflater inflater, List<CommonViewHolder> list) {super();this.minflater = inflater;this.list = list;    }@Overridepublic int getCount() {return  this.list.size();}@Overridepublic boolean isEnabled(int position) {boolean result = true;if(position == 0 || position == 4 || position == 9 ) {result = false;}return result;}@Overridepublic Object getItem(int position) {return  position < this.list.size()  ? this.list.get(position) : null;}@Overridepublic long getItemId(int position) {return  position < this.list.size() ? this.list.get(position).id :  -1l;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {CommonViewHolder commHolder = null;   if(convertView == null) {    convertView = minflater.inflate(R.layout.list_common_item, null);    commHolder = new CommonViewHolder();    commHolder.text= (TextView)convertView.findViewById(R.id.more_item_text);    commHolder.sign = (ImageView)convertView.findViewById(R.id.more_item_sign);    commHolder.sign.setImageResource(R.drawable.go_next_icon);    commHolder.text.setTextColor(Color.BLACK);    convertView.setDrawingCacheBackgroundColor(Color.WHITE);    convertView.setTag(commHolder);   }else {   commHolder =  (CommonViewHolder) convertView.getTag();   }   commHolder.text.setText(this.list.get(position).text.getText());   if(position == 0 || position == 4 || position == 9 ) {   commHolder.sign.setImageDrawable(null);   convertView.setBackgroundColor(Color.GRAY);   }   return convertView;}}


2)自定义背景(白色+圆角)

只需要配置XML即可。


four_white_corner_listview_bg.xml

<?xml version="1.0" encoding="utf-8"?><selector    xmlns:android="http://schemas.android.com/apk/res/android">       <item>               <shape xmlns:android="http://schemas.android.com/apk/res/android"                     android:shape="rectangle">                    <stroke android:width="3dip" android:color="#ffffffff" />                     <solid android:color="#ffffffff" />                     <corners android:bottomRightRadius="6dip"                         android:bottomLeftRadius="6dip"                         android:topLeftRadius="6dip"                         android:topRightRadius="6dip" />                 </shape>     </item>        </selector>

更多Drawable用法参考: http://idunnolol.com/android/drawables.html


listview:

<ListView android:id="@+id/xxxx"      android:layout_width="wrap_content"      android:background="@drawable/four_white_corner_listview_bg"      android:drawSelectorOnTop="false"android:cacheColorHint="#00000000"android:fitsSystemWindows="true"android:fastScrollEnabled="true"      android:layout_height="125sp">      </ListView>


读书人网 >移动开发

热点推荐