为啥 ViewPager 需要手动指定高度?
Posted
技术标签:
【中文标题】为啥 ViewPager 需要手动指定高度?【英文标题】:Why does ViewPager need to specify height manually?为什么 ViewPager 需要手动指定高度? 【发布时间】:2020-09-17 05:10:30 【问题描述】:我有 NestedScrollView 包含 CardView、TabLayout 和 ViewPager。如果我指定 android:layout_height match_parent 或 wrap_content (只有选项卡名称可见),ViewPager 不会在选项卡上显示内容。它仅在我指定 dp 中的值时才有效
我的 XML 布局如下。
<androidx.core.widget.NestedScrollView
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_
android:layout_>
<LinearLayout
android:orientation="vertical"
android:layout_
android:layout_>
<androidx.cardview.widget.CardView
android:layout_
android:layout_>
<TextView
android:layout_marginTop="10dp"
android:id="@+id/DescriptionTv"
android:textStyle="bold"
android:text="Post description"
android:layout_
android:layout_/>
</LinearLayout>
</androidx.cardview.widget.CardView>
<com.google.android.material.tabs.TabLayout
app:tabGravity="fill"
android:id="@+id/TabLayout"
android:layout_
android:layout_>
</com.google.android.material.tabs.TabLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/Viewpager"
android:layout_
android:layout_/> // I want to avoid specifying values but not working
</LinearLayout>
</androidx.core.widget.NestedScrollView>
如何避免在数字中指定 android:layout_height 以使 ViewPager 将其与屏幕匹配为 Normal TabLayout?请帮忙
我尝试在 ViewPager 中添加我的 TabLayout 但不起作用(两者都变得不可见)
【问题讨论】:
【参考方案1】:您可以使用match_parent
,并在ViewPager
中添加View
,大小为math_parent
。
喜欢:
<ViewPager ...layout_>
<View android:layout_
android:layout_ />
</ViewPager>
【讨论】:
你能分享一个xml代码吗?因为我尝试了大多数对我不起作用的解决方案。 您可以检查已编辑的内容,有时ViewPager
在子视图中无法正常工作。
我已经应用了您的解决方案。我只能看到标签名称。我的片段不可见。
我不确定确切的问题,但您是否考虑过使用约束布局?如果您在约束布局内正确约束它,此布局将允许您在视图寻呼机的宽度和高度上指定 0dp
哦,我错过了,请将View
设置为android:visibility="invisible"
。以上是关于为啥 ViewPager 需要手动指定高度?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 ViewPager 高度 match_parent 不起作用?
Android中仿淘宝商品详情ViewPager页面数据手动滑动
ViewPager系列:ViewPager+Fragment实现滑动下一页效果