web-dev-qa-db-ja.com

Android:ExpandableListViewで子の仕切りを非表示にします

ExpandableListViewから仕切りを完全に削除する必要があります。親アイテムに関しては、ゼロ値を渡すことができるsetDividerHeightメソッドです。しかし、子ディバイダーに同様の方法はありません。それを隠す方法はありますか?

39

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);

setDividerHeightsetChildDividerおよびsetDividerより下でなければ、高さが0になります。

さらに回答を待っています...

48
user393472

子ディバイダーを非表示にするには、色を透明に設定します#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"/>
25
David-mu

属性を使用できます

<ExpandableListView 
    Android:id="@+id/interestlvExp"
    Android:layout_height="wrap_content"
    Android:layout_width="match_parent"
    Android:divider="@null">
</ExpandableListView>

ただし、これによりグループリストの区切りも削除されます。

3
Ishan Khanduja

長いコードを書く代わりに、プロパティExpandableListViewを使用します。それが動作します :-

Android:childDivider="@Android:color/transparent" 
2
Mr.Moudgil

子区分線のみを削除する場合は、子背景色と同じ色のドロアブルを作成できます。次に、それを子の仕切りとして設定します。

ShapeDrawable sd1 = new ShapeDrawable(new RectShape()); sd1.getPaint().setColor(YOUR CHILD ITEM BACKGROUND COLOR); mExpListView.setChildDivider(sd1);

1
Amit

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"
        />
0
Lilo