1

在你 说“谷歌说不要这样做”之前 ,请阅读我的所有问题!!

布局:

ScrollView -> RelativeLayout -> ScrollView -> RelativeLayout

一个ScrollView 是必要的,因为表单条目会在某些手机上拉起软键盘,从而隐藏其余内容。将 ScrollView 作为最外层的容器允许用户在存在软键盘的情况下进行滚动。

层次结构中较低的第二个ScrollView 是仍可滚动的 ListView。

我完全理解为什么不鼓励开发人员在另一个 ScrollView 中有一个 ScrollView。我需要想办法让两者一起工作。当最里面的 ScrollView 得到触摸时,我尝试禁用最外面的 ScrollView,但这没有帮助。

有没有办法解决这个问题(当然不是同时)?在再次更改内容页面之前,我什至不介意禁用最外层的 ScrollView。一定有办法。。

4

3 回答 3

4

第 1 步:删除ScrollView.

步骤#2:使第一个成为您viaRelativeLayout中的标题。ListViewaddHeaderView()

步骤#3:使第二个成为您viaRelativeLayout中的页脚。ListViewaddFooterView()

最终效果是整个东西都是可滚动的,没有嵌套的可滚​​动项。

于 2012-09-20T16:52:56.107 回答
0

只有当您将 android:layout_height 设置为第二个 ScrollView 的固定值时,它才会起作用。最好的方法是根据设备设置尺寸,因为最好为每个支持的屏幕尺寸创建布局(dp 上的值,如 150 dp)。您应该创建单独的布局:layout-small、layout-normal、layout-large .... 请参阅此链接以优化固定尺寸:http: //developer.android.com/guide/practices/screens_support.html

于 2012-09-20T16:52:40.197 回答
0

答案是以编程方式拦截最外层滚动视图的触摸事件。我正在使用我在另一个 SOF 中找到的关于Disabling a ScrollView Programattically的类。

于 2012-09-26T17:00:05.427 回答