Как заставить ViewPager обернуть и отобразить фрагмент элемента вкладки, обернутый в макет ограничения и ScrollView? - PullRequest
0 голосов
/ 06 марта 2020

(обновлено, см. Ниже)

Сценарий : Когда пользователь нажимает на элемент RecyclerView в Основном действии, открывается вид деятельности, который отображает несколько полей TextView с информацией. Ниже этой информации находится TabLayout с двумя вкладками, которые содержат дополнительную информацию, и каждый фрагмент вкладки содержит дополнительные TextViews и типы полей. Эти поля TextView могут расширяться или сжиматься в зависимости от размера текста (например, одна строка против абзаца).

Иерархия макета «Вид деятельности»: ConstraintLayout, содержащий ToolBar и ScrollView. Внутри ScrollView находится второй ConstraintLayout, который содержит TextViews, за которым следует TabLayout (содержащий 2 TabItems) и затем ViewPager.

Моя проблема: Я не уверен, почему мой ViewPager содержался в мой второй ConstraintLayout не оборачивается вокруг содержимого фрагмента (т. е. полей), когда выбрана вкладка, содержащая фрагмент с полями TextView?

Что я сделал / попробовал: Я снова просмотрел количество примеров / руководств по TabLayout для настройки вкладок. Я также заметил, что если я просто жестко закодировал фиксированное layout_height = "200dp" вместо "wrap_content", я могу видеть поля TextView для каждой вкладки при запуске приложения. Тем не менее, я попытался, но не могу заставить ConstraintLayout или ViewPager развернуться до нижней части представления прокрутки или родительского элемента либо с помощью «parent», либо «0dp», чтобы поля вкладки были видны.

UPDATE Я смог решить проблему ограничения ViewPager на ConstraintLayout в ScrollView с помощью android:fillViewport="true", который является известной проблемой, и это было решением ( см. Здесь ). Однако я все еще не могу заставить ViewPager обернуть и отобразить содержимое фрагмента.

VP (ViewPager); C (ConstraintLayout2); SV (ScrollView)

image ConstraintLayout > ViewPager"> Образец ViewPager в activty_view. xml. Вы можете увидеть иерархию с ViewPager после Tablayout, содержащегося в ConstraintLayout (2) в ScrollView в ConstraintLayout (самый внешний).

                </com.google.android.material.tabs.TabLayout>

            <androidx.viewpager.widget.ViewPager
                    android:id="@+id/view_ViewPager"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:layout_constraintTop_toBottomOf="@id/view_Tab_Layout"
                    app:layout_behavior="@string/appbar_scrolling_view_behavior"
                    android:layout_margin="5dp"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintHorizontal_bias="0.0">

            </androidx.viewpager.widget.ViewPager>
        </androidx.constraintlayout.widget.ConstraintLayout>
    </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

Что я вижу:

What I see

Какова моя цель (принудительно задано жестким кодом android: layout_height = "200dp"):

enter image description here

...