2012-07-30 18 views
5

che ho di fare una visualizzazione elenco orizzontale all'interno di una visualizzazione elenco verticale. Entrambe le visualizzazioni elenco possono avere un numero qualsiasi di elementi ed entrambi devono essere scorrevoli.ListView all'interno di un altro ListView

Come faccio a ottenere questo perché ho letto che Android non supporta visualizzazione elenco gerarchia.

Grazie!

CUSTOM UI

+0

Le immagini di scorrimento non possono essere nidificate. [+ info qui] [1]. [1]: http://stackoverflow.com/questions/4490821/scrollview-inside-scrollview – Snicolas

risposta

3

per raggiungere questo obiettivo questo, è necessario eseguire le seguenti operazioni ::

  1. Creare uno ScrollView verticale avendo singolo LinearLayout.
  2. ora creare ListViews orizzontali all'interno di questo LinearLayout come mostrato nell'esempio qui sotto:

Quindi questo vi permetterà di scorrimento verticale nel schermo nonché orizzontalmente in ogni ListView.

per es.

<ScrollView> 

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

Edit: aggiunta dinamicamente 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); 
+0

Scrollviews non può essere annidati ... ma ma ma ... si può prendere un singolo genitore LinearLayout e al suo interno, è possibile mantenere più ListViews. Quindi il ScrollView avrà un singolo bambino Linearlayout. –

+0

Ma in questo caso, non conosco il numero di entrambe le listView che devo fare dato che sono casuali. Come lo realizzerò? – gauravsapiens

+0

Si prega di controllare il mio Modifica –

0
<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> 
0

non è possibile, ma si può fare un trucco che ho usato e lavorato anche per me. Ci si può fermare (interrupt) ListView esterno s metodo di scorrimento utilizzando questo :)

Supponiamo di avere ListView LV all'interno orizzontale Listview HV allora dovete scrivere in seguito nel metodo tocco di lista 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; 
      } 
     });