Почему ViewPager нужно указывать высоту вручную? - PullRequest
0 голосов
/ 29 мая 2020

У меня есть NestedScrollView , содержащий CardView, TabLayout и ViewPager. ViewPager не отображает содержимое вкладок, если я укажу android: layout_height либо match_parent, либо wrap_content (видны только имена вкладок). Он работает только тогда, когда я указываю значение в dp

My XML Layout, как показано ниже.

<androidx.core.widget.NestedScrollView
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        <androidx.cardview.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
                <TextView
                    android:layout_marginTop="10dp"
                    android:id="@+id/DescriptionTv"
                    android:textStyle="bold"
                    android:text="Post description"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"/>
            </LinearLayout>

        </androidx.cardview.widget.CardView>

                <com.google.android.material.tabs.TabLayout
                    app:tabGravity="fill"
                    android:id="@+id/TabLayout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">
                </com.google.android.material.tabs.TabLayout>

            <androidx.viewpager.widget.ViewPager
                android:id="@+id/Viewpager"
                android:layout_width="match_parent"
                android:layout_height="500dp"/>  // I want to avoid specifying values but not working
        </LinearLayout>
    </androidx.core.widget.NestedScrollView>

Как мне избежать указания android: layout_height в числа для ViewPager, чтобы он соответствовал экрану как Normal TabLayout? Пожалуйста, помогите

Я попытался добавить свой TabLayout внутрь ViewPager, но не работает (оба становятся невидимыми)

1 Ответ

0 голосов
/ 29 мая 2020

Вы можете использовать match_parent и иметь View внутри ViewPager с размером math_parent.

Например:

<ViewPager ...layout_height="match_parent">
   <View android:layout_width="match_parent" 
         android:layout_height="match_parent" />
</ViewPager>

...