scrolling recyclerview not inside ejemplo android android-recyclerview scrollview android-nestedscrollview linearlayoutmanager

android - not - scroll recyclerview



¿Cómo desplazarse a una posición particular en recyclerview dentro de scrollview? (5)

Paso 1: agregue esta línea para seleccionar esa posición en el recyclerview

adaptercat.setSelectedItem(Integer.parseInt(dealtypeid));

Paso 2: una vez que verifique el constructor a continuación, obtenga la posición actual

public CatgerotyAdapter(Context context, ArrayList<HashMap<String, String>> arraylist,String selectedPosition) { this.context = context; this.data = arraylist; resultp = new HashMap<>(); currentItemPos=Integer.parseInt(selectedPosition)-1; }

Paso 3: Y esta función también en adaptador.

public void setCurrentItem(int item) { this.currentItemPos = item; }

Último paso 4. Agregue esta función fuera del adaptador en su clase

private void onPagerItemClick2(Integer tag) { adaptercat.setCurrentItem(tag); catsp.setAdapter(adaptercat); }

Empuje esta línea en su elemento de vista de lista, haga clic en Listner

((ClassName) context).onPagerItemClick2(position);

Esa posición se seleccionará cuando abrirá la vista de lista ..

He buscado mucho con respecto a mi consulta y ninguno de ellos fue útil. Tengo una vista de reciclaje y algunos datos estáticos dentro de una vista de desplazamiento que se encuentra dentro de una configuración principal de raíz como se muestra a continuación.

He puesto -

scrollview.scrollto(0,0);

porque cada vez que abro la actividad, salta al recyclerview firstitem y omite los datos estáticos sobre el recyclerview.

recyclerview.setNestedScrollingEnabled(false); recyclerview.setfocusable(false);

para smoothscroll.

el problema es con-

layoutmanager.scrollToPositionWithOffset(pos,0);

no está trabajando. He configurado el aboveline después de configurar el adaptador para recyclerview. También lo intenté con NestedScrollView pero en vano.

aunque he usado

layoutmanager.scrollToPosition(pos);

Para aquellos que omiten el código, he establecido match_parent en ScrollView y fillviewport en true.

Aquí está mi diseño.

<?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 &amp; 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>


Sé que estoy respondiendo bastante tarde, pero si tiene un problema de desplazamiento automático, debe agregar android: descendantFocusability = "blocksDescendants" en su RelativeLayout. Entonces, tu etiqueta RealtiveLyout se verá así:

<RelativeLayout android:id="@+id/inclusionviewgroup" android:layout_width="match_parent" android:descendantFocusability="blocksDescendants" android:layout_height="match_parent">


Utilice este método scrollToPosition (posición int). Esto es un trabajo para mí. Espero que esto te ayudará.

mMessagesRecyclerView = (RecyclerView) findViewById(R.id.messagesRecyclerView); LinearLayoutManager layoutManager = new LinearLayoutManager(this); layoutManager.setStackFromEnd(true); mMessagesRecyclerView.setLayoutManager(layoutManager); mMessagesAdapter = new MessagesAdapter(); mMessagesRecyclerView.setAdapter(mMessagesAdapter); mMessagesRecyclerView.scrollToPosition(your position);

este es mi layoutstructer


puede utilizar el método de vista de desplazamiento para llegar a las ubicaciones que desee como:

scrollView.smoothScrollTo(int x, int y);


ScrollView desplazarse ScrollView obteniendo la primera posición del hijo de RecyclerView :

float y = recyclerView.getY() + recyclerView.getChildAt(selectedPosition).getY(); scrollView.smoothScrollTo(0, (int) y);