Cómo sincronizar dos posiciones de ListView

Tengo dos ListViews . ¿Hay alguna manera de sincronizar la posición de ListViews cuando desplazo cualquiera de las listas. Estoy implementando un AbsListView.OnScrollListener , registrando a ListView . Cuando el ListView se desplaza, el método onScroll() de OnScrollListener se activará, entonces llamo `smoothScrollToPosition () '. Pero sí funciona correctamente. ¿Puede alguien proporcionarme algún ejemplo de código para esto?

Aquí está una muestra de código de trabajo de lo que nininho está sugiriendo

Actividad principal

 public class MainActivity extends Activity { public static String[] Cheeses = new String[] { "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi", "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre", "Allgauer Emmentaler", "Alverca", "Ambert", "American Cheese", }; ListView list1; ListView list2; boolean isLeftListEnabled = true; boolean isRightListEnabled = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Cheeses); list1 = (ListView) findViewById(R.id.list1); list1.setAdapter(adapter); list2 = (ListView) findViewById(R.id.list2); list2.setAdapter(adapter); // IF YOU DO NOT OVERRIDE THIS // ONLY THE ONE THAT IS TOUCHED WILL SCROLL OVER list1.setOverScrollMode(ListView.OVER_SCROLL_NEVER); list2.setOverScrollMode(ListView.OVER_SCROLL_NEVER); list1.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // onScroll will be called and there will be an infinite loop. // That's why i set a boolean value if (scrollState == SCROLL_STATE_TOUCH_SCROLL) { isRightListEnabled = false; } else if (scrollState == SCROLL_STATE_IDLE) { isRightListEnabled = true; } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { View c = view.getChildAt(0); if (c != null && isLeftListEnabled) { list2.setSelectionFromTop(firstVisibleItem, c.getTop()); } } }); list2.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { if (scrollState == SCROLL_STATE_TOUCH_SCROLL) { isLeftListEnabled = false; } else if (scrollState == SCROLL_STATE_IDLE) { isLeftListEnabled = true; } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { View c = view.getChildAt(0); if (c != null && isRightListEnabled) { list1.setSelectionFromTop(firstVisibleItem, c.getTop()); } } }); } } 

el XML

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:splitMotionEvents="true"> <ListView android:id="@+id/list1" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" /> <ListView android:id="@+id/list2" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" /> </LinearLayout> 

Si la posición es visible smoothScrollToPosition () no se desplazará. Se puede pensar en usar scrollTo o scrollBy en la otra lista que no está desplazándose en este momento, pero tenga cuidado de no introducir una recursión con cada lista llamando a la otra para desplazarse.

  • ¿Cómo obtengo la dirección MAC y el dispositivo Android con 6.0 o superior en c #?
  • Cómo recibir URL con filtros de intenciones Xamarin
  • Protección de bases de datos SQLite locales (aplicación Android)
  • Necesito un ejemplo de sqlite con Monodroid
  • AngularJS no funciona en Xamarin Android Webview
  • Icono de aplicación Crear una información de superposición (número)?
  • Forzar EditText para perder el enfoque cuando se vuelve a presionar
  • JsonSerializationException 'No se puede encontrar un constructor' en Xamarin.Android
  • Monodroid para el servicio android
  • Xamarin.Forms popup "Nueva Versión Disponible"
  • Cuál es la diferencia entre Java.Net.Uri y Android.Net.Uri
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.