1

私の問題は、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 が "GONE" であっても、イメージのminimized_group_item が表示されます。

Android版の影響もあると思います。デバイスを 2.3.3 から CM11 (4.4) に更新する前は、このコードは正常に機能していました。

ウェブ上で関連するものを見つけることができませんでした。スクリーンショットも用意しましたが、投稿できません (評判が 10 未満) ですが、ここにアップロードしました。この奇妙な動作に興味を持っていただければ幸いです。この問題を解決する方法を知りたいと思っています。

4

1 に答える 1

0

このプロジェクトは古く、何ヶ月も何もしていませんでした。どうやら私はコードを設定しましたexpandableLectures.setGroupIndicator(getResources().getDrawable(R.drawable.list_expander));

グループ インジケーターとしてのセレクターが機能しません。Android 4.4未満でも表示されません。そのため、これは Android のバージョンによるものだと思っていましたが、GroupIndicator として設定したためです。

于 2015-03-16T15:58:32.533 に答える