クエリに関して多くの検索を行ったが、どれも役に立たなかった。以下に示すように、root parentlayout内にあるスクロールビュー内にrecyclerviewといくつかの静的データがあります。
設定しました-
scrollview.scrollto(0,0);
アクティビティを開くたびにrecyclerviewの最初の項目にジャンプし、recyclerviewの上の静的データをスキップするためです。
recyclerview.setNestedScrollingEnabled(false);
recyclerview.setfocusable(false);
スムーズスクロール用。
問題は-
layoutmanager.scrollToPositionWithOffset(pos,0);
動作していません。アダプタをrecyclerviewに設定した後、上記の行を設定しました。 NestedScrollViewでも試してみましたが、無駄でした。
私は使用しましたが
layoutmanager.scrollToPosition(pos);
コードをスキップする人のために、match_parentをScrollViewに設定し、fillviewportをtrueに設定しました。
これが私のレイアウトです。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
Android:id="@+id/bottomsheet"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
tools:context="com.inkdrops.khaalijeb.BrandCouponActivity">
<RelativeLayout
Android:id="@+id/inclusionviewgroup"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<static data/>
<ScrollView
Android:id="@+id/scrollviewmain"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_below="@+id/one"
Android:fillViewport="true"
Android:scrollbars="none"
Android:layout_above="@+id/donelayout">
<staticdata/>
<TextView
Android:id="@+id/dealstext"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@+id/card1"
Android:layout_marginTop="10dp"
Android:layout_marginLeft="10dp"
Android:textSize="16sp"
Android:text="Deals & Coupons"
Android:textColor="#444444" />
<RelativeLayout
Android:id="@+id/recyclerlayout"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_below="@+id/dealstext"
Android:layout_marginTop="5dp"
Android:layout_marginLeft="8dp"
Android:layout_marginRight="8dp"
Android:background="@color/colorbackground">
<Android.support.v7.widget.RecyclerView
Android:id="@+id/coupon_rec_view"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@color/colorbackground"
Android:visibility="visible"/>
</RelativeLayout>
<statisdata>
</RelativeLayout>
</ScrollView>
include layout="@layout/activity_coupons"
Android:visibility="gone"
/>
</RelativeLayout>
</RelativeLayout>
ScrollView
の子の最上位を取得してRecyclerView
をスクロールする必要があります。
float y = recyclerView.getY() + recyclerView.getChildAt(selectedPosition).getY();
scrollView.smoothScrollTo(0, (int) y);
スクロールビューメソッドを使用して、次のように目的の場所に到達できます。
scrollView.smoothScrollTo(int x, int y);