Android ScrollView拒绝滚动到底部

我有一个root scrollview元素,其中包含一个relativelayout,以及相对布局中的一堆表单元素。

出于某种原因,当软键盘启动时,它似乎无法一直滚动到底部,这将我的一个按钮切成两半。

以下是层次结构查看器的屏幕截图,用于演示我的意思。

在此处输入图像描述

如您所见,系统知道视图继续通过键盘,但滚动视图(正确填充屏幕的可见部分)将不会继续向下滚动。

我在活动清单中有android:windowSoftInputMode="adjustResize" ,我可以/不会将其切换为pan。

任何帮助表示赞赏。

编辑:我在多个视图中看到这个。 这是另一个具有相同问题的视图的xml:

        

Solutions Collecting From Web of "Android ScrollView拒绝滚动到底部"

这真的很奇怪,但它似乎是由android:layout_margin="32dp"android:layout_margin="32dp"引起的。 一旦我拿出它,滚动工作正常。

当然,因为这个我不得不为我的表单元素添加更多的边距,但至少现在已经修复了。

我有同样的问题,我通过使用ScrollView中的填充而不是RelativeLayout中的边距来修复它。

因此,从RelativeLayout(ScrollView的子android:layout_margin="32dp"删除android:layout_margin="32dp"并将android:padding="32dp"到ScrollView。

您还可以插入一个错误视图来模仿底部边距,如下所示:

  

效果是一样的,您只需将它插入相对布局中的最后一个元素下面。

我刚刚在应用程序中遇到此问题,并发现它是由于ScrollView layout_height被设置为包装内容。 问题是如果你有足够的内容需要ScrollView,你不想包装内容,因为ScrollView的底部离开了屏幕任意数量。 我没有足够的数据受此影响因为我不需要ScrollView直到键盘popup。 从它的外观来看,OP处于相同的情况。

现在,一旦popup键盘,ScrollView的底部就会boost与键盘高度相同的数量,并且最终会低于键盘顶部,与可见屏幕底部下方的任意数量相同。

最后,我的修复是将ScrollView的顶部绑定到我的工具栏,然后右键单击树中的ScrollVIew并选择“垂直居中”(不在父选项中)。 现在就像一个魅力。 layout_height应自动转到0dp。

在棒棒糖及以上制作状态栏是透明的,这对我来说是个问题。 设置

 机器人:fitsSystemWindows = “真” 

到包含scrollView的布局的父视图解决了这个问题。