1

我正在尝试采用我已经创建的可扩展列表视图并更改组列表中一项的背景颜色。我只想更改主列表中条目的颜色,而不是其下拉子项,也就是您单击以展开或隐藏其他部分的部分。我认为 getGroupView 会做到这一点,但我不知道如何做到这一点。如果这是正确的使用方法,有人可以解释如何使用它吗?如果有更好的方法,它是什么?

[编辑] 我又玩了一些,并想出了如何使用 getGroupView ,但我仍然遇到问题。根据我的理解,我所做的应该只是更改单个条目的颜色,而是将它们全部更改。这是代码:

    View listViewRow = findViewById(R.layout.menu_item);
    listViewRow = myNewAdapter.getGroupView(2, false, listViewRow, expandView);
    listViewRow.setBackgroundColor(Color.RED);

其中 menu_item 是我用于可展开列表中的组的布局文件的名称,expandView 是可展开列表视图。

4

3 回答 3

0

在扩展的 BaseExpandableListAdapter 类中尝试这个

public View getGroupView(int groupPosition, boolean isExpanded,
    View convertView, ViewGroup parent) {

   if (convertView == null) {
    LayoutInflater inflater =  (LayoutInflater) myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView = inflater.inflate(R.layout.group_row, null);
   }

   TextView tvGroupName = (TextView) convertView.findViewById(R.id.tvGroupName);
   tvGroupName.setText(list.get(groupPosition).getYear() +" COLLECTION");

   return convertView;
  }

或者引用这个

于 2012-11-02T05:12:04.117 回答
0

尝试这个

  • 如果您想更改 headerlist.xml 中 headerlist 更改的颜色

     <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:padding="8dp"
      android:orientation="vertical"
     android:background="@color/colorRed">
    </LinearLayout>
    

    -如果你想改变 childlist.xml 中子列表的颜色

     <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
      android:layout_height="55dip"
    
     android:layout_marginLeft="@dimen/_15dp"
    </RelativeLayout>
    
于 2017-05-23T10:40:41.747 回答
-3

把这条线放在你想显示不同颜色的地方:

- android:textColor="#a60704"

用任何颜色代替:

- #a60704
于 2012-11-02T04:47:13.370 回答