gpt4 book ai didi

Android SupportLib - CoordinatorLayout 中的 FrameLayout 与 AppBarLayout 占用整个屏幕高度

转载 作者:IT老高 更新时间:2023-10-28 22:02:23 35 4
gpt4 key购买 nike

我目前遇到了来自 Android 设计支持库的 CoordinatorLayout 中的 FrameLayout 的问题,而我按照此 post 中的说明进行操作在创建选项卡时。

基本上大多数事情都按预期工作,容器 fragment 被膨胀到 FrameLayout 并且它们的标签 fragment 被正确添加到 ViewPager 作为标签(需要它方式,因为我有很多 fragment 应该重用布局)。

我正在努力解决的问题是 FrameLayout (因此也是选项卡 fragment )占用了整个屏幕高度,因此它与 ToolbarTabLayout。为了可视化问题,我创建了以下图像:

Visualized issue

带有 CoordinatorLayoutToolbarTabLayout 的基本布局:

<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

<include layout="@layout/toolbar" />

<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

</android.support.design.widget.AppBarLayout>

<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</android.support.design.widget.CoordinatorLayout>

膨胀到container的 fragment 使用的独立布局:

<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_height="match_parent"
android:layout_width="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />

所有 fragment 都被我的 BaseFragment-class 充气(在另一篇关于 SO 的帖子中调用 inflater.inflate(getLayoutRes(), null); 是导致相同的问题问题)

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(getLayoutRes(), container, false);
}

如果我将 CoordinatorLayout 替换为普通的 LinearLayoutFrameLayout 按预期从 AppBarLayout 下方开始,但根据 documentation AppBarLayout 的大部分功能需要是 CoordinatorLayout 的直接子级。

我可以将 marginTop 添加到 FrameLayout 但我想知道是否有任何合适的解决方案。提前感谢您的任何提示!

最佳答案

移动您的app:layout_behavior="@string/appbar_scrolling_view_behavior"FrameLayout - 该属性需要位于 CoordinatorLayout 的直接子级上.

关于Android SupportLib - CoordinatorLayout 中的 FrameLayout 与 AppBarLayout 占用整个屏幕高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32427084/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com