我创建了一个包含许多线性布局的布局,我在其中一个线性布局中并排设置了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>
答案 0 :(得分:0)
我猜你的LinearLayout
之一位于ScrollView
。所以删除ScrollView。
答案 1 :(得分:0)
尝试在包含这些Listviews的活动中添加以下下面的代码:
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;
}
答案 2 :(得分:0)
我已经弄明白了。显然,布局&#34;继续&#34;超越屏幕。我只是添加了一些元素来测试它是否滚动,但实际上,只有第三个列表滚动而另外两个不是因为第三个列表有更多的元素,它超出了它的限制。这就是它滚动的原因。
我等同于&#34;走出屏幕&#34;我认为列表应该滚动,但这只是一个设计问题 - 操作系统并不认为列表已经离开了屏幕。
只要我将更多元素放入其他两个列表中,它们就会全部滚动。