我在Android 2.3.5(以及可能早期的Android版本)上遇到此问题
当我的expnadablelistview折叠后,背景会正确显示。只要一个组行被展开,其背景就会变黑。
这是listview
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg"
>
<TextView
android:id="@+id/ExpandableListText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor = "#490600"
android:paddingRight = "25sp"
android:paddingLeft = "25sp"
/>
<ExpandableListView
android:id="@+id/ExpandableListView01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:divider="#000000"
android:dividerHeight="1sp"
android:childDivider="#000000"
android:headerDividersEnabled="true"
android:footerDividersEnabled="true"
android:scrollingCache="false"
android:cacheColorHint="#00000000"
android:drawSelectorOnTop="true"
/>
</LinearLayout>
这是组行的XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/TextViewGroup"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="50sp"
android:gravity="center_vertical"
android:textColor = "#490600"
android:paddingTop="7dip"
android:paddingBottom="7dip"
><!-- -->
</TextView>
</LinearLayout>
这是child_row XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- android:background="#666666" -->
<!-- -->
<TextView
android:id="@+id/TextViewChild01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30sp"
android:textColor = "#000000"
>
</TextView>
<TextView
android:id="@+id/TextViewChild02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10sp"
android:textColor = "#000000"
>
</TextView>
<TextView
android:id="@+id/TextViewChild03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10sp"
android:textColor = "#000000"
>
</TextView>
</LinearLayout>
非常感谢任何帮助
答案 0 :(得分:3)
自定义ExpandableListView类,然后 -
package com.test
//....................
View getView(.....) {
View v = super.getView(....);
//........
//change it your color or or set the text you want.
return(v);
}
然后将其设置为您的布局 -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg"
>
<TextView
android:id="@+id/ExpandableListText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor = "#490600"
android:paddingRight = "25sp"
android:paddingLeft = "25sp"
/>
<com.test.ExpandableListView
android:id="@+id/ExpandableListView01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:divider="#000000"
android:dividerHeight="1sp"
android:childDivider="#000000"
android:headerDividersEnabled="true"
android:footerDividersEnabled="true"
android:scrollingCache="false"
android:cacheColorHint="#00000000"
android:drawSelectorOnTop="true"
/>
答案 1 :(得分:2)
在开始创建新视图之前,请确保已在布局文件中为视图设置了“缓存颜色提示”属性。在选择/滚动期间,该属性应设置为您首选的背景颜色---否则视图将默认为黑色。
答案 2 :(得分:1)
我有同样的问题,显然这是2.3版本的一个错误,并与android:child Divider =“#000000”相关联,只需删除它,黑色背景就会消失。
答案 3 :(得分:0)
扩展Suvam Roy的答案,对我有用的是确保从代码或相关的布局文件中明确分配从GetChildView返回的子视图的背景(无论使用哪种技术定义视图) )。
这样做的缺点是你松开了默认项目点击突出显示。将背景设置为可绘制的选择器很容易,但我还没有能够复制淡出效果(即使将所有涉及的android内置drawable复制到我的应用程序的空间)。
作为参考,大多数列表的默认drawable(提供带有淡出效果的精彩点击突出显示)是
Android.Resource.Drawable.ListSelectorBackground
最终只需将ExpandableListView上的cacheColorHint设置为'#00000000'(半透明)