-1

ListView を ScrollView にハックしようとしています。多くのスレッドが指摘しているように、これは非常に悪い習慣です (崩壊しないで ListView を ScrollView に配置するにはどうすればよいですか? を参照してください)。現在、ListView の高さを測定し、ここで提案されているソリューション ( https://stackoverflow.com/a/3495908/924217 ) を使用してサイズを修正しています。これは、同じ高さの行では完全に機能しますが、可変高さでは正しく測定されません (すべての行の最小の高さを報告します)。迅速で汚い修正のために、高さが可変の行の高さを適切に測定する方法を知っている人はいますか?

より適切には、LinearLayouts を使用した適切な回避策を教えてもらえますか。リストに動的に追加および削除する必要があるアイテムがあるため、ListView を使用しようとしています。アダプターや ListView によって割り当てられるその他の優れた点がなければ、これを行う便利な方法は考えられません。これが適切に処理されている例を誰かが見つけるのを手伝ってくれますか? また、これをカバーするオープンソース プロジェクトはありますか? 私は多くの人が同様の質問をしているのを見てきました。

4

2 に答える 2

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 に答える