【问题标题】:How to scroll many ListViews inside a LinearLayout? [duplicate]如何在 LinearLayout 中滚动多个 ListView? [复制]
【发布时间】:2017-01-17 07:45:08
【问题描述】:

我在一个包含 XML 文件和一些 ListView 的应用程序上工作我想让它们在 LinearLayout 内滚动,所以我用 ScrollView 完成了它,但这是不可能的,我需要你的帮助,在此先感谢,这是我的源代码:

XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ListViewCatalogueRDV"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/TextViewDimancheCatalogueRDV"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/TextViewDimancheCatalogueRDV"
            android:textSize="30sp" />

        <ListView
            android:id="@+id/ListViewDimancheCatalogueRDV"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
        </ListView>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/TextViewLundiCatalogueRDV"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/TextViewLundiCatalogueRDV"
            android:textSize="30sp" />

        <ListView
            android:id="@+id/ListViewLundiCatalogueRDV"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
        </ListView>
    </LinearLayout>

</LinearLayout>

【问题讨论】:

  • 列表视图本身有滚动机制,所以不要尝试它。可能是由于列表视图中的项目较少,您没有感觉到滚动正在发生。所以请确保您有更多数量的项目listviews..**无需设置** android:orientation=vertical请从 listview 小部件中删除它
  • 是的,我知道 listview 视图本身具有滚动机制,但我需要滚动包含许多 ListView 的线性布局,
  • 我实际上认为您可能想要重新考虑您正在尝试构建的用户界面。可滚动的法术灾难中的可滚动,更不用说用户体验问题了。我真的会建议您以不同的方式构建应用程序的 UI。
  • 是的,我也这么认为,谢谢,

标签: android android-layout listview android-studio android-scrollview


【解决方案1】:

我建议你使用ExpandableHeightListView

如果你不想使用 ExpandableHeightListView 比你可以尝试以下

永远不要将列表视图放在滚动视图中。 Listview 本身是可滚动的。

检查https://developer.android.com/reference/android/widget/ListView.html

在垂直滚动列表中显示项目的视图

你需要使用weightSum,查看下面的布局

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerVertical="true"
    android:fadingEdge="none"
    android:fillViewport="true"
    android:isScrollContainer="true"
    android:scrollbars="none" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ListViewCatalogueRDV"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:orientation="vertical"
        android:weightSum="3" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/TextViewDimancheCatalogueRDV1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="TextViewDimancheCatalogueRDV"
                android:textSize="30sp" />

            <ListView
                android:id="@+id/ListViewDimancheCatalogueRDV1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
            </ListView >
        </LinearLayout >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/TextViewLundiCatalogueRDV2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="TextViewLundiCatalogueRDV"
                android:textSize="30sp" />

            <ListView
                android:id="@+id/ListViewLundiCatalogueRDV2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
            </ListView >
        </LinearLayout >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/TextViewDimancheCatalogueRDV3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="TextViewDimancheCatalogueRDV"
                android:textSize="30sp" />

            <ListView
                android:id="@+id/ListViewDimancheCatalogueRDV3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
            </ListView >
        </LinearLayout >
    </LinearLayout >
</ScrollView >

【讨论】:

  • 你找到解决方案了吗?@ZaK Amiar
  • 不,我不知道,我知道我们不应该将 ListView 放在 Scrollview 中,所以我寻找解决方案来让包含许多 ListView 的线性布局滚动
  • listview 不需要放在 scrollview 里面。我有你的问题。你需要在linearlayout里面有两个listview吗?@Z
  • 检查更新的答案,您的两个列表视图都在线性布局中滚动。
  • 如果仍然存在问题而不是提供您想要的截图?
【解决方案2】:

在第一个Linear Layout 中设置android:orientation="vertical" android:scrollbars="vertical"

【讨论】:

  • 它不起作用!
  • 然后像&lt;ScrollView android:layout_width="wrap_content" android:layout_height="wrap_content" android:scrollbars="vertical"&gt; &lt;ListView android:id="@+id/list_city" android:layout_width="match_parent" android:layout_height="match_parent" /&gt; &lt;/ScrollView&gt;一样把listView放在ScrollView中
【解决方案3】:

我终于找到了解决方案,感谢您的所有努力(^_^),这是一个解决方案:stackoverflow.com/questions/6210895/

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多