-1

我一直在尝试将 ListView 破解为 ScrollView。正如许多线程所指出的那样,这是一种非常糟糕的做法(请参阅如何将 ListView 放入 ScrollView 而不会崩溃?)。我目前正在测量我的 ListView 的高度并使用此处提出的解决方案(https://stackoverflow.com/a/3495908/924217)来修复它的大小,该解决方案非常适用于等高行,但对于可变高度测量不正确(报告所有行的最小高度)。为了快速而肮脏的修复,有谁知道如何正确测量可变高度行的高度?

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

4

2 回答 2

0

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

于 2013-04-17T16:39:53.683 回答
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;
                }
            });
于 2013-09-27T11:32:18.527 回答