ListView dentro de otro ListView

Tengo que hacer una vista de lista horizontal dentro de una vista de lista vertical. Ambas vistas de lista pueden tener cualquier número de elementos y ambos necesitan ser desplazables.

¿Cómo voy a lograr esto porque he leído que android no es compatible con la jerarquía de vista de lista.

Gracias !

Interfaz de usuario personalizada

Para Lograr esto esto, Tienes que hacer lo siguiente:

  1. Cree una ScrollView vertical con Single LinearLayout.
  2. Ahora cree ListViews horizontales dentro de este Linearlayout como se muestra en el ejemplo a continuación:

Por lo tanto esto le permitirá desplazarse verticalmente en la pantalla , así como horizontalmente en cada ListView .

Por ejemplo.

<ScrollView> <LinearLayout..... //this a vertically oriented layout > <ListView/> . .//This listViews Are Horizontal . <ListView> </Linearlayout> </ScrollView> 

Edit: Agregando dinámicamente ListView al LinearLayout.

 LinearLayout ll=(LinearLayout)findViewById(R.id.id_given_in_the_XML_file); ListView lv=new ListView(Activityname.this); . . . Do All ListView Processing Here . . . lv.setAdapater(adapter); ll.addView(lv); 

Yo sugeriría usar un ListView para desplazarse verticalmente y usar un LinearLayout dentro de un ScrollView para hacer el desplazamiento horizontal.

ListView – elemento 1: – HorizontalScrollView – LinearLayout (orientación: horizontal)

Compruebe también esta respuesta: https://stackoverflow.com/questions/5398449/how-can-i-create-a-pulse-like-ui-for-an-android-application

No es posible, pero puedes hacer un truco que he usado y trabajado para mí también. Puede detener (interrumpir) el método de desplazamiento de lista externa s utilizando este 🙂

Supongamos que tiene listview LV dentro de ListView HV horizontal, entonces usted tiene que escribir a continuación en el método táctil de la lista de vista-

 lv.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View arg0, MotionEvent arg1) { if(arg1.getAction() == MotionEvent.ACTION_DOWN || arg1.getAction() == MotionEvent.ACTION_MOVE) { HV.requestDisallowInterceptTouchEvent(true); } return false; } }); 
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ll" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Accounts" /> <ListView android:id="@+id/Accounts" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:scrollbars="vertical" /> <View android:layout_width="fill_parent" android:layout_height="2dp" android:background="#FF4500" /> <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Contacts" /> <ListView android:id="@+id/con_listView" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:scrollbars="vertical" /> </LinearLayout> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.