将视图粘贴在协调器布局内的 viewpager 片段的底部
Posted
技术标签:
【中文标题】将视图粘贴在协调器布局内的 viewpager 片段的底部【英文标题】:Stick view at the bottom of the fragment of a viewpager inside coordinator layout 【发布时间】:2016-01-15 02:31:44 【问题描述】:我有一个放置在协调器布局内的 viewpager。在 viewpager 的特定片段中,我有一个回收器视图和片段底部的视图。问题是最初片段底部的视图是隐藏的,只有当我向上滚动时才可见。我希望视图保持在屏幕底部。
文件名:activity_main.xml
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_
android:layout_
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
style="@style/ToolBarStyle"
android:layout_
android:layout_
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_
android:layout_ />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_
android:layout_
app:layout_behavior="com.dekorate.android.Utils.AppBarLayoutBehavior" />
</android.support.design.widget.CoordinatorLayout>
【问题讨论】:
您找到解决问题的方法了吗?我认为唯一可行的是将锚定视图移出片段并进入 CoordinatorLayout,但这对我来说不是一个可行的解决方案 @darnmason 在活动中实现 AppBarLayout.OnOffsetChangedListener。在 onOffsetChanged 方法中,根据当前滚动的高度调整底部视图的边距。 干杯,似乎工作得很好! @arkit 我可以有这个代码吗?我面临同样的问题,找不到任何解决方案。 【参考方案1】:在活动中实现 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);
这里 fragment 是片段的实例,bottomLayout 是底部的视图。
【讨论】:
以上是关于将视图粘贴在协调器布局内的 viewpager 片段的底部的主要内容,如果未能解决你的问题,请参考以下文章
Android 布局:具有滚动行为的 Viewpager 内的垂直 Recyclerview 内的水平 Recyclerview
约束布局中的 ViewPager 选项卡式活动在底部被剪切以用于 recyclerview
ViewPager2嵌套RecyclerView滑动冲突解决办法