1

2つのリストビューがあります。もう一方のリストビューをスクロールすると、一方のリストビューを自動的にスクロールする必要があります。両方のリストビューにこの機能が必要です

両方のリストビューにonScrollListnerを実装しました

リストビュー1の場合

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
if (l1.getChildAt(0) != null) {
    Rect r = new Rect();
    l1.getChildVisibleRect(l1.getChildAt(0), r, null);
    l2.setSelectionFromTop(l1.getFirstVisiblePosition(), r.top);
    }

}

リストビュー2の場合

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
if (l2.getChildAt(0) != null) {
    Rect r = new Rect();
    l2.getChildVisibleRect(l2.getChildAt(0), r, null);
    l1.setSelectionFromTop(l2.getFirstVisiblePosition(), r.top);
    }

}

これに関して2つの問題があります

1-リストがスムーズにスクロールしません。(通常のリストビューとは異なります)

2-私は1つのリストビューを使用して両方のリストビューのみをスクロールできます(l2を使用してスクロールすると、両方がスクロールされますが、l1を使用してスクロールすると機能しません。両方とも固定されたままです)

前もって感謝します

4

3 に答える 3

0

それはあなたのアプリケーションなので、あなたはあなたがやりたいことを何でもすることができますが、私はあなたが達成したいことと混同しています。2つのリストビューを使用する唯一のアイデアは、2つの異なるカテゴリのデータを別々に表現して、別々にアクセス(スクロールまたは選択)できるようにすることです。
リストとして並べて表示する必要がある2つのカテゴリのデータを表す必要がある場合は、2列のリスト行を作成できます。
このようなものが機能します:
ここに画像の説明を入力してください


これらの2つの行に異なる種類のデータを入力すると、一緒にスクロールできます。

于 2012-07-27T06:04:15.623 に答える
0

リストビュー内にリストビューを配置したために起こりました:)

これを使用して問題を解決できます。

L1 が L2 の内側にあると仮定すると、

L1.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View arg0, MotionEvent arg1) {

                if(arg1.getAction() == MotionEvent.ACTION_DOWN || arg1.getAction() == MotionEvent.ACTION_MOVE)
                {
                L2.requestDisallowInterceptTouchEvent(true);

                }
                return false;
            }
        });
于 2012-07-27T05:49:54.750 に答える
0

同じ結果を得る別の方法を見つけました。2 つのリスト ビューを削除し、2 列のグリッド ビューに置き換えました。このようにして、onScrollListner を実装せずに両方をスクロールでき、2 つのリストビューに使用したカスタム アダプターを使用することもできます。

于 2012-07-27T08:46:50.777 に答える