拡張可能なリストビューの高さを計算しようとしているので、ヘッダーを含むすべてのアイテムを表示できるので、コンテンツを見るためにスクロールする必要はありません。Height ExpandableListViewの計算に関する問題
これは、リストビューを表示する部分です。その隣にカレンダーです:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:orientation="vertical">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".fragments.DashboardFragment">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context=".fragments.DashboardFragment">
<ExpandableListView
android:id="@+id/lvExp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<CalendarView
android:id="@+id/calendarView"
android:layout_width="match_parent"
android:layout_height="292dp" />
</LinearLayout>
</LinearLayout>
私はフラグメントに位置setOnGroupExpandListenerで高さを計算しています。最初のiはヘッダの二人の子供の高さを取得全ての:
height += ((expListView.getChildAt(0).getHeight()+expListView.getDividerHeight())-expListView.getDividerHeight())*listAdapter.getGroupCount();
、私は次の式を使用して子供の高さを計算する:私は最初のグループを展開すると
for (int i = 0; i < listAdapter.getGroupCount();i++){
if (expListView.isGroupExpanded(i)){
height += listAdapter.getChildrenCount(i)*(expListView.getChildAt(0).getHeight()+expListView.getDividerHeight())-expListView.getDividerHeight();
}
}
ギャップでありますリストビューとカレンダーの間に配置されます。私が第2のグループを拡張するとき、それらの間にはより大きなギャップが置かれる。
私はそれらを崩壊するために同じ数式を持っています。
高さを計算するために別の公式を使用すべきですか?
問題は、アイテムのリストを表示する必要があり、展開/折りたたむ必要があり、私が見つけた唯一の解決策は、展開可能なリストビューを使用していたことです。あなたが別の解決策を知っていれば、私は非常に感謝しています – n4h1n
拡張可能なリストビューは、スクロールが必要な(または少なくとも気にしない)限り、それにはいいです。スクロールしたくない場合は、リストビューの形式を使用したくないです。その時点であなた自身のビューを書く時間。あなたの例を見ても、私はスクロールが完全に適切だと思う。 –