2015-10-16 74 views
7

我有一个放置在协调器布局内的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> 
+0

您是否找到解决问题的方法?我唯一想做的就是将锚定视图移出片段并进入CoordinatorLayout,但这对我来说不是一个可行的解决方案 – darnmason

+1

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

+0

干杯,似乎工作得不错! – darnmason

回答

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); 

} 

这里片段是你的片段和bottomLayout的实例是底部的观点。