在ExpandableListView中更改每一行的背景颜色?

时间:2011-04-15 16:11:10

标签: java android

嘿,是否可以更改ExpandableListView中指定行的背景?我想要的是:第一排蓝色,第二红色,第三蓝色,第四红色.....谢谢

3 个答案:

答案 0 :(得分:1)

是的,这是可能的,您必须为可扩展列表视图使用自定义适配器。

 @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
            View convertView, ViewGroup parent) {
       //......
        //...... Your code for row view
       //.....

        //Now write here code for set colors for rows
        if(childPosition % 2 == 0) {
           convertView.setBackgroundColor("#0000FF"); // use this when you want to use hexa value of colors
        } else {
           convertView.setBackgroundColor("#FF0000"); // use this when you want to use hexa value of colors
        }

        //setBackgroundResource(android.R.color.transparent); // use this for predefined colors at place of setBackground


       return convertView;
    }

阅读this文章,此处的示例和源代码也可用。

答案 1 :(得分:0)

当然。您只需在创建或重新创建视图时手动设置视图背景。在方法

中的适配器中执行此操作
getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent)

基于小组和儿童位置

答案 2 :(得分:0)

您可能需要查看this thread: Android ExpandableListView 有一个working sample具有您想要的功能(根据它们保存的数据对行进行着色)。