linearlayout layout_width gridlayout examples ejemplo dinamico constraint caracteristicas android android-layout android-nestedscrollview

android - layout_width - Desplácese programáticamente a la parte superior de un NestedScrollView



linearlayout android caracteristicas (11)

¿Hay alguna manera de desplazarse programáticamente a la parte superior de un NestedScrollView activando también los eventos de desplazamiento para el padre? smoothScrollTo(x, y) no delega los eventos de desplazamiento a NestedScrollingParent .


Agregue la línea dos veces. Trabajó para mí

nestedScrollView.fullScroll(View.FOCUS_UP); nestedScrollView.fullScroll(View.FOCUS_UP);


Intenté todas las respuestas anteriores, nada parecía funcionar, pero solo necesitaba una publicación demorada.

scrollview.postDelayed(new Runnable() { @Override public void run() { listener.setAppBarExpanded(false, true); //appbar.setExpanded(expanded, animated); scrollview.fullScroll(View.FOCUS_DOWN); } }, 400);


Logré hacerlo (desplazamiento animado):

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams(); AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior(); if (behavior != null) { behavior.onNestedFling(coordinatorLayout, appBarLayout, null, 0, 10000, true); }

donde 10000 es la velocidad en la dirección y.


Nada funcionó para mí, y realmente no sé por qué funcionó, pero aquí está mi solución y mi problema.

Al agregar la vista de reciclador a una vista de desplazamiento anidada, mostraba la vista de reciclador en la pantalla al llegar a esa actividad. Para desplazarme hacia arriba, tuve que usar esto:

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.details_recycler_view); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setItemAnimator(new DefaultItemAnimator()); ProductDescriptionAdapter adapter = new ProductDescriptionAdapter(this); adapter.setData(mProduct.getDetails()); recyclerView.setAdapter(adapter); NestedScrollView scrollView = (NestedScrollView) findViewById(R.id.scroll); scrollView.getParent().requestChildFocus(scrollView, scrollView);


Otra forma de desplazar NestedScrollView hacia arriba o hacia abajo es mediante la función fullScroll(direct)

nestedScrollView.fullScroll(View.FOCUS_DOWN); nestedScrollView.fullScroll(View.FOCUS_UP);


Podrías fingir fácilmente el desplazamiento en el nivel NestedScrollView. Básicamente le dices al coordinador de diseño que acabas de desplazarte por la altura de la barra de herramientas.

NestedScrollView nestedScrollView = (NestedScrollView) getActivity().findViewById(R.id.your_nested_scroll_view); int toolbarHeight = getActivity().findViewById(R.id.toolbar).getHeight(); nestedScrollView.startNestedScroll(ViewCompat.SCROLL_AXIS_VERTICAL); nestedScrollView.dispatchNestedPreScroll(0, toolbarHeight, null, null); nestedScrollView.dispatchNestedScroll(0, 0, 0, 0, new int[]{0, -toolbarHeight}); nestedScrollView.scrollTo(0, nestedScrollView.getBottom());


También me enfrenté a un escenario similar. En mi caso, cuando me desplazo hacia abajo para finalizar, debería aparecer el botón FAB y cuando el usuario toque ese botón FAB debería ir a la parte superior de la página. Para eso agregué @SilentKnight respondiendo NestedScrollView.scrollTo(0, 0); Para ir a la parte superior, pero que no es suficiente para una animación suave para desplazarse hacia arriba.
Para una animación fluida, he usado la respuesta @Sharj que es NestedScrollView.fullScroll(View.FOCUS_UP); Pero entonces mi AppBar no es visible por lo tanto, tengo que expandir la AppBar como sigue appBarLayout1.setExpanded(true) . Entonces, usando estos tres, puedo ir sin problemas a la parte superior de la página.

nestedScrollView.fullScroll(View.FOCUS_UP); nestedScrollView.scrollTo(0,0); appBarLayout1.setExpanded(true);


Tuve un problema con NestedScrollView cuando lo usé que con RecyclerView. Este código funcionó para mí: nestedScrollView !!. GetParent (). RequestChildFocus (nestedScrollView, nestedScrollView);

val recyclerViewSearch = activity?.findViewById<RecyclerView>(R.id.recycler) recyclerViewSearch.setAdapter(setAdapterSearch()) val nestedScrollView = activity?.findViewById<NestedScrollView>(R.id.bottom_sheet_Search) nestedScrollView!!.getParent().requestChildFocus(nestedScrollView, nestedScrollView);


Utilice View.scollTo (int x, int y) en su lugar para desplazarse hasta la parte superior.

findViewById({your NestedScrollView resource id}).scrollTo(0, 0);


Puede usar esto para un desplazamiento suave.

nestedScrollView.fullScroll(View.FOCUS_UP); nestedScrollView.smoothScrollTo(0,0);

O para desplazamiento normal

nestedScrollView.fullScroll(View.FOCUS_UP); nestedScrollView.scrollTo(0,0);


NestedScrollView.scrollTo(0, 0);