替代ScrollView中的ListView

时间:2013-04-17 15:55:06

标签: android listview scrollview

我一直在尝试将ListView破解为ScrollView。正如许多线程所指出的,这是一种非常糟糕的做法(见How can I put a ListView into a ScrollView without it collapsing?)。我目前正在测量ListView的高度并使用此处提出的解决方案(https://stackoverflow.com/a/3495908/924217)来修复其大小,该解决方案适用于相同高度的行,但对于可变高度测量不正确(报告所有行的最小高度)。对于快速和脏的修复,有谁知道如何正确测量高度可变行的高度?

更合适的是,任何人都可以指出我使用LinearLayouts的好方法。我正在尝试使用ListView,因为我需要动态添加和删除到列表中的项目。如果没有适配器和ListView占用的其他细节,我想不出任何方便的方法。有人可以帮我找到一个正确处理的例子吗?此外,是否有任何开源项目涵盖这个?我见过很多人提出类似的问题而且很少有非黑客的决心。

2 个答案:

答案 0 :(得分:0)

我建议您使用listfragment,以便动态添加/删除项目。

答案 1 :(得分:0)

此处parentScroll =您的主滚动视图和childScroll =您的列表视图

parentScroll.setOnTouchListener(new View.OnTouchListener() {

                public boolean onTouch(View v, MotionEvent event) {
                    Log.v("PARENT", "PARENT TOUCH");
                    findViewById(R.id.child_scroll).getParent()
                            .requestDisallowInterceptTouchEvent(false);
                    return false;
                }
            });
            childScroll.setOnTouchListener(new View.OnTouchListener() {

                public boolean onTouch(View v, MotionEvent event) {
                    Log.v("CHILD", "CHILD TOUCH");
                    // Disallow the touch request for parent scroll on touch of
                    // child view
                    v.getParent().requestDisallowInterceptTouchEvent(true);
                    return false;
                }
            });