协调器布局以全屏模式在底部留下填充

时间:2017-10-07 19:49:14

标签: android android-layout android-coordinatorlayout android-fullscreen

与许多其他用户一样,我在删除协调器布局的底部填充时遇到问题。我不确定是不是因为协调器布局是通过翻译在库中实现的,无需调整大小,或者如果我错过了标记。

载入时:

On load

滚动:

On scroll

我的布局:

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".activities.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            app:layout_scrollFlags="scroll|snap">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:popupTheme="@style/AppTheme.PopupOverlay">

            </android.support.v7.widget.Toolbar>

            <android.support.design.widget.TabLayout
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:tabIndicatorHeight="0dp" />

        </LinearLayout>

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

    <com.pitchedapps.frost.views.FrostViewPager
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:layout_margin="@dimen/kau_fab_margin"
        android:visibility="gone" />

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

我尝试在协调器布局和appbar布局中添加和删除fitsSystemWindows,但都没有帮助。

此布局的目标是隐藏状态栏和导航栏,并允许工具栏和tablayout向外滚动(这就是为什么它们采用线性布局)。

我在主要活动中设置了以下标志:

override fun onWindowFocusChanged(hasFocus: Boolean) {
    super.onWindowFocusChanged(hasFocus)
    if (hasFocus && Prefs.mainActivityLayout == MainActivityLayout.FULL_SCREEN) {
        window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                or View.SYSTEM_UI_FLAG_FULLSCREEN
                or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)
    }
}

可以在hereactivity_main_hidden_tabs.xml下找到此布局的完整来源。还有其他变种可供参考,但它们不一定是全屏的。

0 个答案:

没有答案