TabLayout 和 Fragment 之间出现奇怪的白条
Strange white bar appears between TabLayout and Fragment
我的布局中有一个奇怪的错误,我无法弄清楚。我的 Fragments 和 TabLayout 之间出现一个白色条。我有一段时间没有更改此代码,也许它是 Android 6.0.1 中的某些内容(我有 Nexus 5)。我很确定,6.0 或 Lollipop 中没有错误。
这是截图:
这是我的 Activity XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_below="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="142dp"
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginStart="48dp"
app:expandedTitleMarginBottom="20dp"
app:expandedTitleMarginEnd="48dp"
app:expandedTitleTextAppearance="@style/ExpandedText"
app:collapsedTitleTextAppearance="@style/CollapsedText">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/toolbar"
android:minHeight="?attr/actionBarSize"
android:gravity="bottom"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:tabIndicatorColor="?attr/colorPrimaryDark"/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
有什么想法吗?
更新 1:
根据@Abanoub Samaan 的建议,我的布局如下所示:
更新 2:
该错误也出现在我的 Nexus 7 (2012) 运行 Android 5.1.1 Lollipop 上。
不要设置 CollapsingToolbarLayout 的高度
android:layout_height="142dp"
替换为
android:layout_height="wrap_content"
我明白了。
我改回旧版本的支持库,例如:
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
现在我的布局恢复正常了:
我有不同的情况。我会在这里分享它,以防有人发现它有用。
我在 activity_main.xml 中的结构如下:
DrawerLayout
|_ CoordinatorLayout
|_ Toolbar
|_ FrameLayout
为了修复出现在 TabLayout 下的怪异 space,我将 CoordinatorLayout 更改为 RelativeLayout。
和 Abdelalim 一样,我在不同的情况下遇到了同样的问题。
在我的主要 activity 我有
<RelativeLayout>
<FragmenLayout></FrameLayout>
<android.support.design.widget.BottomNavigationView><android.support.design.widget.BottomNavigationView
</RelativeLayout>
我在框架布局中渲染了一些片段。在其中一个片段中,我有一个带
的 CoordinatorLayout
android:fitsSystemWindows="true"
我刚刚删除了它并且有效
我的布局中有一个奇怪的错误,我无法弄清楚。我的 Fragments 和 TabLayout 之间出现一个白色条。我有一段时间没有更改此代码,也许它是 Android 6.0.1 中的某些内容(我有 Nexus 5)。我很确定,6.0 或 Lollipop 中没有错误。
这是截图:
这是我的 Activity XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_below="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="142dp"
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginStart="48dp"
app:expandedTitleMarginBottom="20dp"
app:expandedTitleMarginEnd="48dp"
app:expandedTitleTextAppearance="@style/ExpandedText"
app:collapsedTitleTextAppearance="@style/CollapsedText">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/toolbar"
android:minHeight="?attr/actionBarSize"
android:gravity="bottom"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:tabIndicatorColor="?attr/colorPrimaryDark"/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
有什么想法吗?
更新 1:
根据@Abanoub Samaan 的建议,我的布局如下所示:
更新 2:
该错误也出现在我的 Nexus 7 (2012) 运行 Android 5.1.1 Lollipop 上。
不要设置 CollapsingToolbarLayout 的高度
android:layout_height="142dp"
替换为
android:layout_height="wrap_content"
我明白了。
我改回旧版本的支持库,例如:
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
现在我的布局恢复正常了:
我有不同的情况。我会在这里分享它,以防有人发现它有用。
我在 activity_main.xml 中的结构如下:
DrawerLayout
|_ CoordinatorLayout
|_ Toolbar
|_ FrameLayout
为了修复出现在 TabLayout 下的怪异 space,我将 CoordinatorLayout 更改为 RelativeLayout。
和 Abdelalim 一样,我在不同的情况下遇到了同样的问题。
在我的主要 activity 我有
<RelativeLayout>
<FragmenLayout></FrameLayout>
<android.support.design.widget.BottomNavigationView><android.support.design.widget.BottomNavigationView
</RelativeLayout>
我在框架布局中渲染了一些片段。在其中一个片段中,我有一个带
的 CoordinatorLayoutandroid:fitsSystemWindows="true"
我刚刚删除了它并且有效