我想为每一行添加渐变。我试图做的是在listview标签上把这个attribut,android:background =“@ drawable / mygradient”。但我得到的是这个渐变显示在整个列表中。我想要的是为每个项目显示这个渐变。
提前致谢
答案 0 :(得分:1)
您可以为列表视图提供自定义适配器,并在其getView
方法中将渐变设置为背景。像这样:
public class MyAdapter extends BaseAdapter {
List<MyDataType> myData;
Context context;
public MyAdaptor(Context ctx, List<MyDataType> myData) {
this.myData = myData;
this.context = ctx;
}
public int getCount() { return myData.size() };
public Object getItem(int pos) { return myData.get(pos); }
public long getItemId(int pos) { return 0L; }
public View getView(int pos, View convertView, ViewGroup parent) {
//this is where you can customise the display of an individual
//list item by setting its background, etc, etc.
...
//and return the view for the list item at the end
return <List item view>;
}
}
然后您可以将此适配器设置为列表的适配器:
ListView myList = <initialise it here>
myList.setAdapter(new MyAdapter(getContext(), listData);
现在,只要需要显示列表项,就会调用getView
方法,您将执行所有必要的显示自定义,包括设置背景。
答案 1 :(得分:0)
而不是设置背景属性设置列表的选择器,如下所示:
机器人:listSelector = “@绘制/ list_selector_background”