enter code here
私はrecyclerviewを使用していますが、もう1つリサイクルビューのアダプタレイアウト内に recyclerviewを実装する必要があります。 誰でも私にjsonデータをrecyclerview に設定することができます。これはVerticsalリサイクラのcardviewの内側にあります。私はそれを非常によく知っている水平なrecyclerviewを設定する方法について について教えてください。 私の問題は、私はあなたが垂直RecyclerViewのアダプタにList>
を渡し、その後onBindViewHolder
で、で、内側のリストを渡すことができ、垂直recyclerviewのcardview横型リサイクルビュー内縦型リサイクルビューアアダプタ
0
A
答えて
0
内にある recyclerviewにデータを設定する方法という混乱していますということですいくつかのインデックスi
を水平RecyclerViewのアダプタのコンストラクタに渡します。外側の垂直RecyclerViewについては
0
、この拡張クラスを使用します。内側の水平RecyclerViewについては
public class BetterRecyclerView extends RecyclerView{
private static final int INVALID_POINTER = -1;
private int mScrollPointerId = INVALID_POINTER;
private int mInitialTouchX, mInitialTouchY;
private int mTouchSlop;
public BetterRecyclerView(Context context) {
this(context, null);
}
public BetterRecyclerView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public BetterRecyclerView(Context context, @Nullable AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
final ViewConfiguration vc = ViewConfiguration.get(getContext());
mTouchSlop = vc.getScaledTouchSlop();
}
@Override
public void setScrollingTouchSlop(int slopConstant) {
super.setScrollingTouchSlop(slopConstant);
final ViewConfiguration vc = ViewConfiguration.get(getContext());
switch (slopConstant) {
case TOUCH_SLOP_DEFAULT:
mTouchSlop = vc.getScaledTouchSlop();
break;
case TOUCH_SLOP_PAGING:
mTouchSlop = ViewConfigurationCompat.getScaledPagingTouchSlop(vc);
break;
default:
break;
}
}
@Override
public boolean onInterceptTouchEvent(MotionEvent e) {
final int action = MotionEventCompat.getActionMasked(e);
final int actionIndex = MotionEventCompat.getActionIndex(e);
switch (action) {
case MotionEvent.ACTION_DOWN:
mScrollPointerId = MotionEventCompat.getPointerId(e, 0);
mInitialTouchX = (int) (e.getX() + 0.5f);
mInitialTouchY = (int) (e.getY() + 0.5f);
return super.onInterceptTouchEvent(e);
case MotionEventCompat.ACTION_POINTER_DOWN:
mScrollPointerId = MotionEventCompat.getPointerId(e, actionIndex);
mInitialTouchX = (int) (MotionEventCompat.getX(e, actionIndex) + 0.5f);
mInitialTouchY = (int) (MotionEventCompat.getY(e, actionIndex) + 0.5f);
return super.onInterceptTouchEvent(e);
case MotionEvent.ACTION_MOVE: {
final int index = MotionEventCompat.findPointerIndex(e, mScrollPointerId);
if (index < 0) {
return false;
}
final int x = (int) (MotionEventCompat.getX(e, index) + 0.5f);
final int y = (int) (MotionEventCompat.getY(e, index) + 0.5f);
if (getScrollState() != SCROLL_STATE_DRAGGING) {
final int dx = x - mInitialTouchX;
final int dy = y - mInitialTouchY;
final boolean canScrollHorizontally = getLayoutManager().canScrollHorizontally();
final boolean canScrollVertically = getLayoutManager().canScrollVertically();
boolean startScroll = false;
if (canScrollHorizontally && Math.abs(dx) > mTouchSlop && (Math.abs(dx) >= Math.abs(dy) || canScrollVertically)) {
startScroll = true;
}
if (canScrollVertically && Math.abs(dy) > mTouchSlop && (Math.abs(dy) >= Math.abs(dx) || canScrollHorizontally)) {
startScroll = true;
}
return startScroll && super.onInterceptTouchEvent(e);
}
return super.onInterceptTouchEvent(e);
}
default:
return super.onInterceptTouchEvent(e);
}
}
}
を、この拡張クラスを使用します。
public class FeedRootRecyclerView extends BetterRecyclerView{
public FeedRootRecyclerView(Context context) {
this(context, null);
}
public FeedRootRecyclerView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public FeedRootRecyclerView(Context context, @Nullable AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) {
/* do nothing */
}
}
あなたはどのようなこれらのクラスについての適切な説明を見つけることができますここをクリックしてください:http://nerds.headout.com/fix-horizontal-scrolling-in-your-android-app/
+0
複数の質問に[同じ回答](http://stackoverflow.com/a/41940784/4687348)を追加しないでください。最良のものに答え、残りを重複としてフラグを立てる。 「[複数の質問に重複した回答を追加することは可能ですか?](http://meta.stackexchange.com/q/104227/347985)を参照してください。 – FelixSFD
関連する問題
- 1. 縦型リサイクルビュー内の横型リサイクルビュー
- 2. テーブル内の縦型ヘッダーと横型ヘッダー
- 3. 縦型リサイクルプラントの上に横型リサイクラを表示
- 4. 縦型RecyclerView内の縦型RecyclerViewの位置/状態を失う
- 5. Android縦型タブアイテム
- 6. 縦型アライメントラッパー
- 7. 縦型デバイダCSS
- 8. Android縦型スイッチウィジェット
- 9. 縦型ヒストグラム
- 10. 縦型タブBulma
- 11. 横型ブートストラップnavbar
- 12. Twitter Bootstrap横型
- 13. 横型オーバーフロースライドパネル
- 14. 縦型センターjQueryアコーディオン
- 15. リニア縦型レイアウト - Android
- 16. 縦型センター&ストレッチロー指向型フレックスボックス
- 17. 縦型メニュー/ナビゲーションバーのレイアウト
- 18. コンテンツ縦型HTML5とオーバーレイ
- 19. 縦型の整列ブートストラップ
- 20. 縦型jCarousel with Ajax and PHP
- 21. 縦横のインラインアライメント
- 22. リストビューalgin横型CSS for mobile
- 23. div内の縦と横のセンタリングテキスト
- 24. 縦型Recyclerviewを縦型recyclerviewの中に実装する方法アンドロイド?
- 25. 縦の横のドロップダウンメニュー
- 26. Android GestureOverlay(縦横ストローク)
- 27. 縦横比100%の縦横比を維持する(CSSのクロップオーバーフロー)
- 28. 携帯端末内の全角縦型ナビバー
- 29. フレックスセンターを縦横に横に並べる
- 30. PyQt4縦型レイアウト自動間隔
これまでに試したコードを追加してください。 – Gustavo