使用android.support.design.widget.CoordinatorLayout出现空白快问题

来源:互联网 发布:电池组bms软件下载 编辑:程序博客网 时间:2024/06/06 01:30

实现沉浸式状态栏和隐藏效果后CoordinatorLayout 22以前没什么问题,只是体验没有23的好,在升级到23后底部出现了一块空白,只要一滑动就出现,后来根据相关资料总算解决了

  先看看布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout 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:orientation="vertical"    android:fitsSystemWindows="true">    <android.support.v7.widget.Toolbar        android:id="@+id/toolbar"        android:layout_width="match_parent"        android:layout_height="?attr/actionBarSize"        android:background="@android:color/white"        android:layout_gravity="center"        />    <android.support.design.widget.CoordinatorLayout        android:id="@+id/root_layout"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:orientation="vertical">        <android.support.design.widget.AppBarLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:fitsSystemWindows="true"            android:orientation="vertical"            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">            <LinearLayout                android:id="@+id/scroll_toolbar_layout"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:gravity="center_vertical"                android:orientation="vertical"                app:layout_scrollFlags="scroll|enterAlways"                app:popupTheme="@style/ThemeOverlay.AppCompat.Light">                //此次去掉相关的代码            </LinearLayout>            <android.support.design.widget.TabLayout                android:id="@+id/my_attention_and_follow_indicator"                android:layout_width="match_parent"                android:layout_height="54dp"                android:background="@color/white"/>        </android.support.design.widget.AppBarLayout>        <android.support.v4.view.ViewPager            android:id="@+id/my_atten_and_follow_viewpager"            android:layout_width="match_parent"            android:layout_height="wrap_content"            app:layout_behavior="@string/appbar_scrolling_view_behavior" />    </android.suppor

这里只要设置toolbar和rootlayot的高度就行

//处理底部的黑块if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {        getWindow().setStatusBarColor(getResources().getColor(android.R.color.transparent));    }}int statusBarHeight = SysUtil.getStatusBarHeight(this);if (statusBarHeight > 0) {    int sunHeight = statusBarHeight + Utils.dip2px(this, 27);    ViewGroup.LayoutParams layoutParams = mToolbar.getLayoutParams();    layoutParams.height = sunHeight;    mToolbar.setLayoutParams(layoutParams);    View rootLayout = findViewById(R.id.root_layout);    rootLayout.setPadding(0, -statusBarHeight * 2, 0, 0);}
这里设置是要在状态栏的基础上再加上标题栏的高度
int sunHeight = statusBarHeight + Utils.dip2px(this, 27);

设置好标题栏后再设置android.support.design.widget.CoordinatorLayout的pading值即可



0 0
原创粉丝点击