スクロールビュー内に2つのリストビューが必要です。私はlistviewsの代わりにreyclerviewsを使用しています。あなたが想像しているように、スクロールの経験は非常に遅いです。私は、両方の私のrecyclerviewsのNestedScrollingEnabled(false)を設定することによって、ラグの問題を解決することができました。2つのリストビューをスクロールビュー内でスムーズにスクロール
rv1.setNestedScrollingEnabled(false);
rv2.setNestedScrollingEnabled(false);
NestedScrollingは、API 21+の機能です。これまでのAPIバージョンと同等のコードは何ですか?
私は以下を試しましたが、リスト項目はクリックできません。しかしスクロールは非常にスムーズです。
rv1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
rv2.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
私は私の項目がクリック可能になるようにコードを微調整しようとしたので、私は次のようにコードを更新は、しかし、今、スムーズなスクロールがなくなっていますが、私の項目がクリック可能です。
rv1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// disallow scrollview to intercept touch events
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
case MotionEvent.ACTION_UP:
// allow scrollview to intercept touch events
v.getParent().requestDisallowInterceptTouchEvent(true);
break;
v.onTouchEvent(event);
return true;
}
});
rv2.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// disallow scrollview to intercept touch events
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
case MotionEvent.ACTION_UP:
// allow scrollview to intercept touch events
v.getParent().requestDisallowInterceptTouchEvent(true);
break;
v.onTouchEvent(event);
return true;
}
});
私はそれが私のXMLが構成されている方法かもしれないと思い、これはちょうど私の理論ですが、親は、実際のLinearLayoutラッパーではなくscrollViewです。私は以下のXMLがどのように構造化されているのかを投稿しました。
<ScrollView
android:id="@+id/sv"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.CardView
....
....
<android.support.v7.widget.RecyclerView
android:id="@+id/rv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:overScrollMode="never"
android:scrollingCache="false"/>
</android.support.v7.widget.CardView>
</LinearLayout>
</ScrollView>
これですべてのヘルプは、事前に感謝をいただければ幸いです!