web-dev-qa-db-ja.com

Recyclerview水平スクロール、ページャーのようなスクロールで1つのアイテムを表示する方法

私はrecyclerViewを使用して垂直スクロールと水平スクロールの両方を実装する必要があり、実用的には、LinearLayoutManagerを使用して方向を設定することにより、recyclerviewの向きを変更できます。スクロールする時間に次のアイテムが表示されるはずです。これを修正するか、提案を修正してください。

**main.xml**

<LinearLayout
    Android:id="@+id/recyler_container"
    Android:layout_width="match_parent"
    Android:layout_weight="1"
    Android:layout_height="0dp">
<Android.support.v7.widget.RecyclerView
    Android:id="@+id/vertical_recycler_view"
    Android:layout_below="@id/slelect_scroll"
    Android:background="#fff"
    Android:layout_width="match_parent"
Android:layout_height="wrap_content"/>
**row.xml**

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
     Android:orientation="horizontal"
     Android:layout_width="match_parent"
     Android:background="#3e56ed"
     Android:layout_height="wrap_content">


<TextView
    Android:textColor="#FFF"
    Android:textSize="18sp"
    Android:padding="16dp"
    Android:id="@+id/txtView"
    Android:text="sample text"
    Android:layout_weight="1"
    Android:layout_alignParentLeft="true"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content" />

<TextView
    Android:id="@+id/txtView2"
    Android:textColor="#FFF"
    Android:textSize="18sp"
    Android:padding="16dp"
    Android:layout_marginLeft="20dp"
    Android:layout_weight=".1"
    Android:background="#000"
    Android:layout_alignParentRight="true"
    Android:text="sample text234"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content" />
</LinearLayout>

Verical SCroll

Horizontal scroll

15
ASKAR ALI

RecyclerViewにViewPagerの動作を模倣させる場合-

RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);

LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
SnapHelper snapHelper = new PagerSnapHelper();
recyclerView.setLayoutManager(layoutManager);
snapHelper.attachToRecyclerView(mRecyclerView);