android如何在scrollview中添加列表视图

时间:2012-01-24 13:02:10

标签: android android-layout scroll

我有如下的布局要求,

Textview
TextView
ListView
Edit Text
Button

由于listview无法适应横向,因此我希望将列表视图(即listviewedittextbutton)作为滚动视图。

我知道listview不能在scrollview内使用,但有没有办法做到这一点? 任何工作的例子将不胜感激。

4 个答案:

答案 0 :(得分:1)

99%的Android开发人员认为我们不应该在ScrollView中使用ListView,因为两者都是滚动视图,只有父级可以滚动,所以它包装了ListView。

100%正确。但我们必须使用技巧来避免这种情况并达到我们的要求。

我在网上找到了一个技巧,即根据列表项设置ListView的高度。只需查看下面的链接,您将获得一个示例代码来计算ListView的高度以适应ScollView。

Android ListView height calculation to fit in ScrollView

此代码存在的问题是,如果有更多孩子可用,则列表视图将填满整个屏幕。

您必须使用以下模板来解决您的需求。

<ScrollView >
    <LinearLayout vertical>
        <TextView />
        <TextView />
        <ListView />
        <EditText />
        <Button />
    </LinearLayout>
</ScrollView>

我在youtube上看到了一个视频,Android ListView inside a ScrollView显示我们可以限制listview的高度,可以滚动并在ScrollView中使用。我不知道程序员是如何实现的。

我也想通过避免上面的示例代码来产生相同的结果。我希望它可以暂时帮助你。如果你有解决方案,请告诉我。

答案 1 :(得分:0)

就这样做

<ScrollView>
          <LinearLayout>
                      <ListView>
          </LinearLayout>             
</ScrollView>

然后添加你的

  

的EditText

     

按钮

答案 2 :(得分:0)

这种布局的更好解决方案是你应该使用相对布局并修复你屏幕底部的EditTextButton,就像我在列表视图中一样(见下图) )这样您就不需要在布局中添加ScrollViewenter image description here

答案 3 :(得分:0)

关于如何在没有滚动视图的情况下执行您想要的操作的方法。

  • ListView
  • 编写自定义适配器
  • 假设您有一组n个元素要用ListView填充EditText,然后填充ButtongetView。所以元素的数量将是n + 2
  • 在位置n + 1的EditText中,返回一个包含Button框而非正常列表项的视图
  • 对于n + 2位置,请返回ListView

不要试图用ScrollView包裹{{1}},你需要解决很多问题。

注意:我没有对此进行测试,甚至不确定它是否有效。如果有效,请告诉我。 :)