ExpandableListViewから仕切りを完全に削除する必要があります。親アイテムに関しては、ゼロ値を渡すことができるsetDividerHeightメソッドです。しかし、子ディバイダーに同様の方法はありません。それを隠す方法はありますか?
ExpandableListView
から仕切りを完全に削除する場合は、親アイテムと子アイテムの両方でsetDividerHeight
を使用できます。子の仕切りは、通常の仕切りと同じ高さを使用して描画されるか、setDividerHeight()
で設定されます。
そして、私は1つの回避策を使用して一方を非表示にし、他方を非表示にします。仕切りとアイテムを次のように同じ色に設定するだけです:
ExpandableListView expView = getExpandableListView();
expView.setGroupIndicator(null);
expView.setChildIndicator(null);
expView.setChildDivider(getResources().getDrawable(R.color.greywhite));
expView.setDivider(getResources().getDrawable(R.color.white));
expView.setDividerHeight(2);
setDividerHeight
はsetChildDivider
およびsetDivider
より下でなければ、高さが0になります。
さらに回答を待っています...
子ディバイダーを非表示にするには、色を透明に設定します#00000000
color.xmlファイルで透明を定義します
<color name="transparent">#00000000</color>
そして、子の仕切りを設定します
listView.setChildDivider(getResources().getDrawable(R.color.transparent))
またはレイアウトxmlファイル内
<ExpandableListView
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:childDivider="#00000000"/>
属性を使用できます
<ExpandableListView
Android:id="@+id/interestlvExp"
Android:layout_height="wrap_content"
Android:layout_width="match_parent"
Android:divider="@null">
</ExpandableListView>
ただし、これによりグループリストの区切りも削除されます。
長いコードを書く代わりに、プロパティExpandableListView
を使用します。それが動作します :-
Android:childDivider="@Android:color/transparent"
子区分線のみを削除する場合は、子背景色と同じ色のドロアブルを作成できます。次に、それを子の仕切りとして設定します。
ShapeDrawable sd1 = new ShapeDrawable(new RectShape()); sd1.getPaint().setColor(YOUR CHILD ITEM BACKGROUND COLOR); mExpListView.setChildDivider(sd1);
ExpandableListViewのディバイダーの高さを0に設定します
//setDividerHeight(0)
そして、headerView xmlの下部にビューを追加します
<View
Android:layout_width="match_parent"
Android:layout_height="1dp"
Android:layout_gravity="bottom"
Android:background="@Android:color/darker_gray"
/>