似乎我的问题是针对Android 4.4及更高版本的。这是我想要做的:
我有一个带有GroupViews和ChapterViews的ExpandableListView。 GroupViews包含一个切换按钮,只有当他们有子视图时才可见,否则设置为View.GONE(这也是默认值)
ToggleButton toggleExpansion = (ToggleButton) chapter.findViewById(R.id.toggleExpansion);
if(getChildrenCount(groupPosition) == 0){ // Not an expandable group
text.setTextColor(getResources().getColor(R.color.title_textcolor_empty));
toggleExpansion.setVisibility(View.GONE);
}else{ // An expandable group
toggleExpansion.setVisibility(View.VISIBLE);
if(isExpanded){
toggleExpansion.setChecked(true);
}else{
toggleExpansion.setChecked(false);
}
}
这些按钮的背景由选择器定义:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@drawable/maximized_group_item" />
<item android:state_checked="false" android:drawable="@drawable/minimized_group_item" />
</selector>
以下是GroupView的布局定义,它在上面夸大了:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal">
<ToggleButton
android:id="@+id/toggleExpansion"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_margin="2dp"
android:background="@drawable/list_expander"
android:padding="4dp"
android:clickable="false"
android:focusable="false"
android:textOff=" "
android:textOn=" "
android:visibility="gone" />
<TextView
android:id="@+id/textChapterTitle"
style="@style/list_text"
android:textStyle="bold" />
</LinearLayout>
当我运行代码时,它运行正常并且如预期的在Android 4.1.2中,但在4.4(在模拟器和设备上),即使ToggleButton是&#34; GONE&#34;,图像minimize_group_item也会显示出来。 / p>
所以我认为它与Android版本有关。在我将设备从2.3.3更新到CM11(4.4)之前,此代码工作正常。
我在网上找不到任何相关内容。我也准备了截图但不能发布它们(声誉&lt; 10)但我上传了它们here。 我希望你发现这个奇怪的行为很有趣,我想知道如何解决这个问题。
答案 0 :(得分:0)
这个项目很旧,几个月来我都做不了什么。显然我设置了代码expandableLectures.setGroupIndicator(getResources().getDrawable(R.drawable.list_expander));
选择器作为组指示器不起作用。它甚至不会出现在Android 4.4之下。因此我认为这是由于Android版本,但这只是因为我将其设置为GroupIndicator。