我在listview
内有scrollview
,但问题是scrollview
正在滚动但listview
没有滚动。我认为这是由于scrollView
。
有工作解决方案的人可以在此作为参考发布吗?
答案 0 :(得分:7)
通常,您不能将可滚动的东西放在其他可滚动的东西中,它们以相同的方向滚动,并且结果是可靠的。偶尔这会起作用(例如WebViews
中的ViewPager
),但这是例外,而不是常态。
或者:
将ListView
移出ScrollView
或
将ScrollView
的所有其余内容移至ListView
,无论是使用addHeaderView()
还是我的MergeAdapter
答案 1 :(得分:5)
ListView必须在XML文件中具有固定高度,如下所示
<ListView android:id="@+id/lv"
android:listSelector="#0f0"
android:layout_width="fill_parent"
android:layout_height="500px" />
在Java文件中,在 setContentView()
之后写下面的代码 lv = (ListView)findViewById(R.id.lv);
lv.setAdapter(your adapter here); // you have to add your adapter here
lv.setOnTouchListener(new ListView.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_MOVE)
{
lv.scrollBy(0, 1);
}
return false;
}
});
对代码进行这些更改并对其进行测试。经过太多实验,我写了这段代码。它工作正常100%。
答案 2 :(得分:5)
如果将ListView /任何可滚动视图放在scrollView中,它将无法正常工作,因为当您触摸屏幕时,触摸的主要焦点位于父视图(scrollView)而不是子视图(ListView)。