Android ListView滚动整个屏幕

问题描述:

我创建了一个包含许多线性布局的布局,并且我在其中一个线性布局中并排设置了3个ListViews。我想让它们中的每一个都可以滚动,但是很奇怪。例如,我希望能够滚动其中的一个,而不会受到任何其他影响。Android 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> 
+0

在此处发布您的XML文件............. – sushildlh

+0

嗯,这是一个很大的问题,我不确定是否有足够的角色可以发布它。 –

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

我把“走出屏幕”和列表滚动的想法等同起来,但这只是一个设计问题 - 操作系统并不认为列表会出现在屏幕上。

只要我在其他两个列表中添加更多元素,它们现在都在滚动。

你的一个LinearLayout s为ScrollView,我猜。所以删除ScrollView。

+0

不需要检查,双重检查和三重检查,只是为了确保。我只使用了LinearLayouts –

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

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; 
    } 
+0

不幸的是,它没有做任何事情。然而,奇怪的是,现在其中一个名单确实滚动。但我已经删除了你的代码,它仍然滚动:)) 所以,我现在有三个列表一个旁边另一个,但只有第三个滚动。他们三个都在一个水平方向的LinearLayout中。 –

+0

我在我的一个项目中有一个类似于你所描述的活动,我有类似你的问题。我在我的代码中发布了我发布的代码,但是我没有在我的xml中使用这个代码:android:nestedScrollingEnabled =“true”尝试删除代码,然后将代码发送给我,看看它是否有效。 –

+0

是的,我以前使用过,它只是滚动整个屏幕。奇怪的是,LinearLayout中的第三个列表确实是滚动的。我试图把它们分别放在自己单独的LinearLayouts中,认为他们可能想单独进行单独滚动,但它仍然是滚动的第三个列表。其他2个不滚动。这没有意义。很明显,关于第三方有一些“特殊”,我试图找出那是什么。 –