坚持视图在协调器布局内的viewpager片段的底部

ark*_*kit 8 android android-layout androiddesignsupport

我有一个viewpager,它放在一个协调器布局中.在viewpager的特定片段中,我有一个回收器视图和片段底部的视图.问题是最初片段底部的视图是隐藏的,只有当我向上滚动时才可见.我希望视图保持在屏幕的底部.

文件名:activity_main.xml

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

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        style="@style/ToolBarStyle"
        android:layout_width="match_parent"
        android:layout_height="?actionBarSize"
        android:layout_alignParentTop="true"
        android:background="@color/toolbarColor"
        android:contentInsetEnd="16dp"
        android:contentInsetRight="16dp"
        android:minHeight="?actionBarSize"
        android:paddingBottom="0dp"
        app:layout_scrollFlags="scroll|enterAlways"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

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

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="com.dekorate.android.Utils.AppBarLayoutBehavior" />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

ark*_*kit 0

在活动中实现 AppBarLayout.OnOffsetChangedListener。在 onOffsetChanged 方法中根据当前滚动的高度调整底部视图的边距。

@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int i) {

    RelativeLayout.LayoutParams bottomLayoutParams = (RelativeLayout.LayoutParams)fragment.bottomLayout.getLayoutParams();
    bottomLayoutParams.setMargins(0,0,0,(actionBarHeight + i));
    fragment.bottomLayout.setLayoutParams(bottomLayoutParams);

}
Run Code Online (Sandbox Code Playgroud)

这里fragment是fragment的实例,bottomLayout是底部的视图。