Android 在滚动视图、非滚动列表视图中显示列表的适配器?

Android 在滚动视图、非滚动列表视图中显示列表的适配器?,android,list,listview,scrollview,adapter,Android,List,Listview,Scrollview,Adapter,在我当前构建的应用程序中,我一直在通过BaseAdapter将ListView与未绑定的数据列表同步。到目前为止,它一直在工作,但现在我需要在ScrollView中有一个数据列表。将ListView放在ScrollView中的问题是,两个视图都会滚动,这会使活动难以导航。我在网上看到的共识似乎是,出于这个原因,ListView不应该放在滚动视图中,而应该使用LinearLayout或TableLayout 我的问题是:有谁能告诉我如何摆脱ListView上的滚动功能,或者如何通过适配器将数据列表

在我当前构建的应用程序中,我一直在通过BaseAdapter将ListView与未绑定的数据列表同步。到目前为止,它一直在工作,但现在我需要在ScrollView中有一个数据列表。将ListView放在ScrollView中的问题是,两个视图都会滚动,这会使活动难以导航。我在网上看到的共识似乎是,出于这个原因,ListView不应该放在滚动视图中,而应该使用LinearLayout或TableLayout


我的问题是:有谁能告诉我如何摆脱ListView上的滚动功能,或者如何通过适配器将数据列表与LinearLayout或TableLayout同步?

您可以创建自己的自定义ListView组件,然后覆盖该方法:


但是,在这种情况下,我过去所做的是为我的列表设置一个单独的垂直线性布局,并通过代码手动添加文本视图,使其看起来类似于列表视图。

John非常感谢您的回复。您的代码确实阻止了ListView的滚动,但是现在我遇到了一个问题,即当ListView的高度设置为包装内容时,我的父布局没有“测量”我的ListView。我相信这是因为ListView被设计为包含比它们所添加到的布局更长的列表。有没有解决此问题的建议?您有两个选项:1)手动设置ListView高度(设置为代码计算的高度,或仅设置为设置值,如200dp)。选项2)根本不使用listview,只需在LinearLayout容器中添加TextView。因为从技术上讲,listview的深度是无限的,所以它永远无法使用wrap_内容。@Johnlehey我面临着同样的问题,但是如果我根据列表项设置listview高度,它将无法工作,但在这种情况下,视图的循环将不可能,因为所有列表项都将同时可见,你有什么解决办法吗?
@Override
public boolean dispatchTouchEvent(MotionEvent event)
{
    int action = event.getAction();
    if (!scrollEnabled) {
        event.setAction(MotionEvent.ACTION_CANCEL);
        super.dispatchTouchEvent(event);
        return true; 
    }

    return super.dispatchTouchEvent(event);
}