滚动视图内的滚动视图

时间:2012-09-20 16:38:53

标签: android android-layout android-scrollview

在您说之前 “Google表示不会这样做” 请仔细阅读我的所有问题!

布局:

ScrollView -> RelativeLayout -> ScrollView -> RelativeLayout

第一个 ScrollView是必要的,因为表单条目会拉动某些手机上的软键盘,这会隐藏其余内容。将ScrollView作为最外层容器允许用户使用软键盘滚动。

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

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

有没有办法解决这个问题,两者都有效(当然不是在同一时间)?在内容页面再次更改之前,我甚至不介意禁用最外面的ScrollView。必须要有一种方式..

3 个答案:

答案 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的课程。