个性化(Style/Theme)之ListView

本文介绍如何在Android开发中实现ListView的自定义背景及分隔栏效果。通过覆盖Adapter中的方法并设置特定条件下的视图属性,可以轻松实现分隔栏功能;同时,仅需简单配置XML文件即可为ListView项添加带有圆角的白色背景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[color=darkblue]1)Item分隔栏[/color]
[img]http://dl.iteye.com/upload/attachment/331771/19e6fad8-c422-34df-bde2-4fd6e5656681.png[/img]

只需要在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;
}

@Override
public int getCount() {
return this.list.size();
}

@Override
public boolean isEnabled(int position) {
boolean result = true;
if(position == 0 || position == 4 || position == 9 ) {
result = false;
}
return result;
}

@Override
public Object getItem(int position) {
return position < this.list.size() ? this.list.get(position) : null;
}

@Override
public long getItemId(int position) {
return position < this.list.size() ? this.list.get(position).id : -1l;
}

@Override
public 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;
}

}


[color=darkblue]2)自定义背景(白色+圆角)[/color]
[img]http://dl.iteye.com/upload/attachment/331767/8d266481-363c-36a1-bb6c-b8fd0f55019c.png[/img]
只需要配置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用法参考: [url]http://idunnolol.com/android/drawables.html[/url]


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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值