Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将视图粘贴在viewpager片段底部的协调器布局内_Android_Android Layout_Androiddesignsupport - Fatal编程技术网

Android 将视图粘贴在viewpager片段底部的协调器布局内

Android 将视图粘贴在viewpager片段底部的协调器布局内,android,android-layout,androiddesignsupport,Android,Android Layout,Androiddesignsupport,我有一个viewpager,它放在协调器布局中。在viewpager的一个特定片段中,我有一个recycler视图和片段底部的一个视图。问题是,最初片段底部的视图是隐藏的,只有当我向上滚动时才可见。我希望视图保持在屏幕底部 文件名:activity_main.xml 在活动中实现AppBarLayout.OnOffsetChangedListener。在onOffsetChanged方法中,根据当前滚动的高度调整底部视图的边距 @Override public void onOffsetCha

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

文件名:activity_main.xml


在活动中实现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是底部的视图。

您找到问题的解决方案了吗?我认为唯一可行的方法是将锚定视图从片段中移出,并移到协调布局中,但这对于me@darnmason在活动中实现AppBarLayout.OnOffsetChangedListener。在onOffsetChanged方法中,根据当前滚动的高度调整底部视图的边距。干杯,似乎已经足够好了@arkit可以给我这个的代码吗?我面临同样的问题,找不到任何解决办法。
@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);

}