0

同じリストビューに展開可能なリストと展開不可能なリストを表示する方法はありますか?私が達成しようとしているのは、展開可能なリストビューを表示することですが、サブアイテムがなく、矢印展開矢印アイコンを表示したくないアイテムの場合はどうすればよいですか?助けてくださいありがとう

編集:私が欲しいのは、グループが空のときにインジケーターの矢印を非表示にできることです

4

2 に答える 2

1

1)基本的に、グループに子がいない場合は「展開矢印」を非表示にする必要があります。GroupIndicatorこれは、プロパティをnullに設定することで実現できます。

例: getExpandableListView().setGroupIndicator(null);

また

2)子数を確認することで、以下のコードのようなインジケーターを設定できます。

   if ( getChildrenCount( groupPosition ) == 0 ) {
       indicator.setVisibility( View.INVISIBLE );
    } else {
       indicator.setVisibility( View.VISIBLE );
       indicator.setImageResource( isExpanded ? R.drawable.list_group_expanded : R.drawable.list_group_closed );
    }

グループインジケーターの非表示の詳細については、このリンクを参照してください。

また

3)ドローアブルフォルダにgroup_indicator.xmlファイルを作成します

<item android:state_empty="true" android:drawable="@android:color/transparent"></item>
<item android:state_expanded="true" android:drawable="@drawable/arrowdown"></item>
<item android:drawable="@drawable/arrowright"></item>

次に、以下のコードのように展開可能なリストビューを定義します。

   <ExpandableListView
        android:id="@+id/android:list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:groupIndicator="@drawable/group_indicator"
        android:layout_weight="1" >
    </ExpandableListView>

これで問題が解決することを願っています。

于 2013-01-19T17:30:30.910 に答える
1

はい。あなたはできる。

BaseExpandableListAdapterを使用する

このクラスには次のメソッドがあります:getGroupTypeCount()およびgetGroupType(int groupPosition)

これをオーバーライドする必要があります。

簡単に言えば、2種類のアイテムがあります。たとえば、Expandable(タイプ1)およびNotexpandable(タイプ2)。

getGroupTypeCount()shoul return 2;

このメソッドでgetGroupView(int groupPosition、boolean isExpanded、View convertView、ViewGroup parent)をオーバーライドして、アイテムのタイプをアイテムの位置でチェックします。アイテムを展開できない場合は、展開されているかどうかに関係なく外観が異なるビューを生成する必要があります。

とても簡単だと思います。

于 2013-01-19T17:28:10.937 に答える