在包含在ScrollView中的LinearLayout内滚动ListView

时间:2017-10-05 20:04:16

标签: android android-layout listview android-scrollview

我有一个应该可滚动的活动,因此我用ScrollView包围它。我有两个listViews,我不希望它显示所有项目所需的大小。

如果我能设置一个maxHeight属性会很好,所以如果只有2个项目就不存在空白空间,但是如果有50个项目我只希望一次看到5个项目。不幸的是没有这样的属性,所以我决定只将高度设置为固定数字。如何更好地做到这一点的任何建议将非常感激。

然而,主要的问题是,当我尝试滚动其中一个listViews时,整个LinearLayout向下滚动。 (如果我使用另一根手指在滚动列表时按住LinearLayout,我可以避免这种情况,但这肯定不是解决方案。)

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_settings"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="app.ballmaschine.pages.SettingsPage">

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

    <!-- Some other stuff here  -->

    <TextView
        android:text="Eine Maschine"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"
        android:layout_marginTop="8dp" />

    <ListView
        android:layout_width="match_parent"
        android:id="@+id/lvCalibsM1"
        android:layout_height="200dp" />

    <TextView
        android:text="Zwei Maschinen"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"
        android:layout_marginTop="8dp" />

    <ListView
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:id="@+id/lvCalibsM2"/>

    <!-- Some more stuff here  -->
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

将其添加到ListView

android:scrollbars = "none"

,这在Java代码中

listView.setNestedScrollingEnabled(false)

答案 1 :(得分:0)

在这些情况下,请始终尝试NestedScrollView并将此行添加到其中

 app:layout_behavior="@string/appbar_scrolling_view_behavior"