这个问题是针对新的ViewPager2类的。
旧的 ViewPager有一个类似的问题,但解决方案需要扩展ViewPager。但是,ViewPager2 是最终版本,因此无法扩展。
在我的情况下,我有一个包含三个不同片段的 ViewPager2。其中一个片段比其他两个片段高得多,这意味着当您滑动到较短的片段之一时,会有很多空白空间。那么如何有效地将 ViewPager2 包裹到当前片段的高度呢?
android android-fragments android-viewpager android-viewpager2
我有一个 ViewPager2,它有不同的高度片段作为孩子,加载数据后孩子的高度发生变化
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:expandedTitleGravity="top"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs_header"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/prospect_detail_tab_prospect" />
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/prospect_detail_tab_influencers" />
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/prospect_detail_tab_sales" />
</com.google.android.material.tabs.TabLayout>
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/pager_header"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</com.google.android.material.appbar.CollapsingToolbarLayout>
Run Code Online (Sandbox Code Playgroud)
我尝试了几种不同的解决方案,但是如果它返回到较小的片段,则没有任何方法可以调整 viewpager2 的大小,它只是保持与最高片段相同的高度