【问题标题】:Android ListView not scaling properlyAndroid ListView 无法正确缩放
【发布时间】:2014-04-29 22:44:26
【问题描述】:

我是 android 编程新手,遇到了一个我无法解决的问题。我用谷歌搜索了一段时间,但没有找到我的方案的解决方案。据我了解,android 中的 ListViews 正在根据屏幕上的空间采用它们的大小,但是如果我需要更多空间怎么办。

我在图片上有如下布局,问题是第二个 ListView 只有一个大项目,然后你需要滚动,但我希望它至少是几个(可见 - 非滚动)项目。我不希望它固定高度。但即使我这样做了,它仍然会超出可见区域,这迫使我制作一个再次不适用于 ListViews 的 ScrollView。

所以我很迷茫。请指导

【问题讨论】:

  • Offtopic:顶部的“返回”按钮违反所有 android 设计模式。
  • 它只是一个线框 cmon

标签: android listview android-listview android-scrollview


【解决方案1】:

您可以将两个带有权重的列表视图放入 LinearLayout。 见第二张图:http://android4beginners.com/wp-content/uploads/2013/07/android_studio_linear_layout_example.png

您需要做的就是根据您正在寻找的设计设置列表视图的权重。

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_rel"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:weightSum="2.0" >

    <ListView
        android:id="@+id/child_one"
        android:layout_width="match_parent"
        android:layout_height="0"
        android:layout_weight="1.0"
        android:background="#0000FF" >
    </ListView>

    <ListView
        android:id="@+id/child_two"
        android:layout_width="match_parent"
        android:layout_height="0"
        android:layout_weight="1.0"
        android:background="#00FF00" >
    </ListView>

</LinearLayout>

【讨论】:

  • 但是如果我想同时滚动呢?假设我的屏幕不够大,我希望它可以通过上面的两个表滚动。它会起作用吗?
  • 这是可能的,但有很多麻烦:您需要将 LinearLayout-Container 放入 ScrollView。然后,您必须拦截每个 ListView 的移动事件,以防您位于 List 的底部/顶部,并将其重定向到 ScrollView。这样你就会有一些你所期望的行为:当滚动到最后一个/第一个元素时,容器会移动。
  • 这怎么可能?我是 android 新手,我喜欢它,但它有一些非常奇怪的技巧。如果我使列表视图不可滚动,我可以在滚动视图中添加它们吗?如果我理解正确,ListView 和 ScrollView 的唯一问题是滚动事件吗?
  • 是的,这是哪个 View 将处理事件的问题。您可以随意将它们彼此放置,但在某些时候您必须决定哪个视图将处理触摸事件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-22
  • 2019-05-18
  • 1970-01-01
  • 2018-05-19
  • 2013-08-21
相关资源
最近更新 更多