Таргетинг androidx
1.0.0, чтобы разрешить устройства до Lollipop (скажем, minSdkVersion 17
или около того).
Я пробовал много комбинаций представлений, настроек, режимов прокрутки и менеджеров компоновки.Я прочитал все - например, это и это и это - относительно этой проблемы.Либо у меня плохая производительность компоновки / рендеринга, либо неправильная / некорректная прокрутка.
Требования:
- Нижняя таблица перетаскивается снизу.Распространенный шаблон пользовательского интерфейса в современных приложениях.
- 10-20 тяжелые дочерние представления одинакового размера.Их нельзя раздувать / рисовать, когда они невидимы.
- Использование нативных представлений Android / Google предпочтительнее .
Как этого добиться?
Вот некоторый псевдокод, показывающий, чего я пытаюсь достичь;RecyclerView
(или эквивалент) внутри NestedScrollView
с BottomSheetBehavior
:
<ScrollView>
<!-- Main content -->
</ScrollView>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:fitsSystemWindows="true"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
app:behavior_hideable="false"
app:behavior_peekHeight="@dimen/bottom_sheet_peek_height">
<!-- RecyclerView? -->
<TextView android:layout_width="match_parent"
android:layout_height="@dimen/bottom_sheet_peek_height"
android:text="Bottom sheet header" />
<-- N heavy equally sized child views here -->
</androidx.core.widget.NestedScrollView>
Я читал, что RecyclerView
превосходит ListView
.Тем не менее, кажется, что он никогда не перезапускает свои представления, учитывая вышеуказанную конфигурацию.