我已经阅读过一些不这样做的文献。但他们尚未提供替代解决方案。不过,这个问题似乎出现了很多。这是我的问题。
我希望我的主要布局是可滚动的(这是因为它将拥有比适合屏幕更多的视图)。我的主要布局是垂直LinearLayout。所以现在我把它放在ScrollView中。
我的LinearLayout的众多子项之一是ListView(显示3项,用户滚动ListView以获取更多信息)。
你可以想象我的LinearLayout的其他孩子会说服你需要这个工作:例如,一个可以是一个可滚动的水平LinearLayout;另一个可能是ViewPater;等
现在,如果我的LinearLayout的内容一下子全部适合屏幕,我就没问题了。但是我的LinearLayout中有六个不同的孩子,一次只能看到三个孩子。所以,是的,我确实需要能够滚动我的LinearLayout。
还有一件事。如果我正在滚动子ListView并且我到达最后,我需要父LinearLayout恢复控制并在用户滚动时开始滚动。
澄清
一个澄清是我的ListView实际上是动态添加到ViewPager。从技术上讲,ViewPager是我的LinearLayout的孩子。但是在ViewPager中,其中一个页面是ListView。
注意
顺便说一下,我读过scrolling ListView within ScrollView。答案很好,但我仍有一些问题。
一旦达到ListView的边缘,控件就不会恢复为ScrollView
如果LinearLayout的任何其他子视图都有一个点击侦听器,那么我就无法使用它们来滚动ScrollView。所以基本上对于大多数屏幕来说,滚动视图是不可滚动的。
答案 0 :(得分:0)
您可以使用ListView
作为主要布局(而不是ScrollView
)并将视图置于列表addHeaderView()
- 方法的顶部(分组在LinearLayout
中或类似的东西)并使用addFooterView
的{{1}}方法对列表下方的项目执行相同操作。
我没有测试它,但我认为它可能有用。