在您说之前 “Google表示不会这样做” 请仔细阅读我的所有问题!
布局:
ScrollView -> RelativeLayout -> ScrollView -> RelativeLayout
第一个 ScrollView是必要的,因为表单条目会拉动某些手机上的软键盘,这会隐藏其余内容。将ScrollView作为最外层容器允许用户使用软键盘滚动。
层次结构中较低的第二 ScrollView是一个仍可滚动的ListView。
我完全理解为什么开发人员不鼓励在另一个ScrollView中使用ScrollView。我需要想办法让两者一起工作。我尝试在最内部的ScrollView触摸时禁用最外面的ScrollView,但这没有帮助。
有没有办法解决这个问题,两者都有效(当然不是在同一时间)?在内容页面再次更改之前,我甚至不介意禁用最外面的ScrollView。必须要有一种方式..
答案 0 :(得分:4)
步骤1:删除ScrollView
。
第2步:通过RelativeLayout
将第一个ListView
作为addHeaderView()
中的标题。
第3步:通过RelativeLayout
让第二个ListView
成为addFooterView()
中的页脚。
净效果是整个事物都可以滚动,没有嵌套的可滚动项目。
答案 1 :(得分:0)
只有当您将android:layout_height设置为第二个ScrollView的固定值时,它才会起作用。最好的方法是根据设备设置大小,因为最好为每个支持的屏幕大小创建布局(dp上的值,如150 dp)。 你应该创建单独的布局:布局小,布局正常,布局大...... 请参阅此链接以优化固定大小:http://developer.android.com/guide/practices/screens_support.html
答案 2 :(得分:0)
答案是以编程方式 拦截 触摸事件形成最外面的scrollview。我正在使用我在另一个SOF中找到的关于Disabling a ScrollView Programattically的课程。