【问题标题】:Android ListView scrolls the entire screenAndroid ListView 滚动整个屏幕
【发布时间】:2016-12-05 12:54:18
【问题描述】:

我创建了一个包含许多线性布局的布局,并且在其中一个线性布局中,我有 3 个并排设置的 ListView。我想让它们中的每一个都可以滚动,但是很奇特。例如,我希望能够滚动其中一个而不影响其他任何内容。

现在,如果我为任何一个列表设置“android:nestedScrollingEnabled="true"”,整个屏幕都会滚动。我希望将列表的滚动限制在列表所在的布局中(这样我可以滚动列表并且屏幕的其余部分保持原位)。

我该怎么做?到目前为止,要么根本不滚动,要么滚动整个屏幕。我只是想让列表滚动。

谢谢!

PS:XML 的相关部分如下所示(没什么特别之处):

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:layout_marginBottom="@dimen/list_vertical_margin">

       <ListView
            android:id="@+id/realtime_vehicle_list"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <ListView
            android:id="@+id/realtime_errors_list"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <ListView
            android:id="@+id/realtime_depot_list"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
</LinearLayout>

【问题讨论】:

  • 在此处发布您的 XML 文件......
  • 嗯,这是一个很大的,我不确定我是否有足够的字符来发布它。

标签: android list listview scroll scrollable


【解决方案1】:

我猜你的一个LinearLayouts 在ScrollView 中。所以删除 ScrollView。

【讨论】:

  • 没有。检查,双重检查和三重检查,只是为了确定。我只用过LinearLayouts
【解决方案2】:

尝试在包含这些列表视图的活动中添加以下代码:

ListView mylistview = (ListView) findViewById(R.id.mylistview);
mylistview.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        v.getParent().requestDisallowInterceptTouchEvent(true);
        return false;
    }

【讨论】:

  • 不幸的是,它什么也没做。然而,奇怪的是,现在其中一个列表确实滚动了。但是我已经删除了你的代码,它仍然滚动:)) 所以,我现在有三个列表,一个挨着另一个,但只有第三个可以滚动。他们三个都在一个水平方向的LinearLayout中。
  • 我在我的一个项目中进行了一项活动,与您描述的类似,我遇到了与您类似的问题。我的代码中有我发布给您的行,但我的 xml 中没有:
  • 是的,我以前用过它,它只是滚动了整个屏幕。这一切的奇怪之处在于,第三个列表,LinearLayout 中的最后一个,确实滚动了。我试图将它们各自放在各自独立的 LinearLayouts 中,认为他们可能希望“独自在自己的布局中”让它们单独滚动,但它仍然是滚动的第三个列表。其他2个不滚动。这是没有意义的。显然,第三个有一些“特别”之处,我正试图找出那是什么。
  • 我已经想通了,看看我上面的回复。
  • 如果您可以发布包含列表视图的活动 XML 将会很有趣。
【解决方案3】:

我想通了。显然,布局“继续”超出了屏幕。我只放了几个元素来测试它是否滚动,但实际上,只有第 3 个列表在滚动而其他两个没有滚动的原因是因为第 3 个列表有更多的元素,并且超出了它的限制。这就是它滚动的原因。

我将“走出屏幕”等同于列表应该滚动的想法,但这只是一个设计问题 - 操作系统并不认为列表会离开屏幕。

我将更多元素放入其他两个列表后,它们现在都在滚动。

【讨论】:

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