¿Cómo inhabilito el overscroll y el rebote en una lista de android?

El comportamiento de mi listview en 2 dispositivos es que o se vuelve amarillo / naranja cuando supercroll, o que puede ser overscrolled y luego se encaja de nuevo. Este último comportamiento es malo porque muestra el fondo debajo de él que quiero evitar.

Lo intenté:

listview.setOverScrollMode(ListView.OVER_SCROLL_NEVER); 

Y no muestra el fondo más, pero ahora hay un efecto de rebote muy molesto. ¿Es posible desactivar tanto el rebote como el desplazamiento excesivo y hacer que el desplazamiento finalice sin ningún efecto cuando llegue al final?

PS: Estoy usando android 2.3 en ambos dispositivos.

2 Solutions collect form web for “¿Cómo inhabilito el overscroll y el rebote en una lista de android?”

He aquí cómo he resuelto esto, espero que ayudará a los que buscan. La clave es adjuntar un OnScrollListener a la lista, hacer un seguimiento de cuando se está procesando un gesto de arrastrar y cuando se ha alcanzado el final de la lista. A continuación, mientras continúe el fling, continúe restableciendo la posición hasta el final si el sistema intenta moverla.

 private ListView mListView; private ListAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_list); mListView = (ListView) findViewById(R.id.listView); mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getList(25)); mListView.setAdapter(mAdapter); mListView.setOverScrollMode(View.OVER_SCROLL_NEVER); if(Build.VERSION.SDK_INT == Build.VERSION_CODES.GINGERBREAD || Build.VERSION.SDK_INT == Build.VERSION_CODES.GINGERBREAD_MR1){ mListView.setOnScrollListener(new OnScrollListener(){ private boolean flinging = false; private boolean reachedEnd = false; @Override public void onScrollStateChanged(AbsListView view, int scrollState) { flinging = (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_FLING); reachedEnd = false; } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if(reachedEnd && flinging && (firstVisibleItem + visibleItemCount < totalItemCount)){ mListView.setSelection(mAdapter.getCount() - 1); }else if(firstVisibleItem + visibleItemCount == totalItemCount){ reachedEnd = true; }else{ reachedEnd = false; } } }); } } 

Podría crear una clase mylistview, extendiendo listview, y podría anular el método overScrollBy y establecer maxOverScrollY a cero

  • Desplazamiento de un TextView a una línea específica
  • Detectar si el desplazamiento de Webview llega al final
  • SetCurrentItem en ViewPager no se desplaza inmediatamente en la posición correcta
  • ¿Es posible soportar una función setScrollY () (ScrollView API 14) como función para los antiguos niveles de API?
  • El evento RecyclerView onScrollStateChanged / onScrolled no se activa cuando no se ha producido desplazamiento
  • Problemas de desplazamiento de GridView dentro de Viewpager dentro de NestedScrollView
  • Desplazar un ListView por píxeles en Android
  • Ocultar / Mostrar la barra de acciones más suavemente?
  • Android: Desplazamiento automático de texto en TextView
  • El evento de desplazamiento del navegador no se dispara con suficiente frecuencia en dispositivos iOS y Android
  • El desplazamiento de texto no funciona
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.