2012-06-27 9 views
6

Chcę utworzyć rodzaj układu kart z kartami zawierającymi układ ListView wewnątrz HorizontalScrollableView, które mogą przewijać karty w poziomie. Wszystko działa, ale mam problem z przewijaniem. Mogę przewijać listę tylko pionowo, jeśli nie przewijam kart w poziomie i viceversa.Korzystanie z układu ScrollViews w HorizontalScrollView

To jest główny pojemnik:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <HorizontalScrollView 
     android:id="@+id/listview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="#ddd" > 

     <LinearLayout 
      android:id="@+id/list" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" android:orientation="horizontal" > 
     </LinearLayout> 
    </HorizontalScrollView> 



</RelativeLayout> 

ja nadmuchać i dodać elementy listview do układu liniowego. Chciałbym umożliwić płynne przewijanie w pionie i w poziomie bez tych ograniczeń (jednoczesne przewijanie w poziomie iw pionie).

Jak mogę to osiągnąć?

+0

Więc chcesz przewinąć całą listview poziomo lub tylko wiersze w listview ?? –

+0

Chcę przewinąć listę w pionie i karty, które zawierają listę w poziomie. Mogę to zrobić, ale nie mogę jednocześnie przewijać, więc bardzo trudno jest osiągnąć dobry wynik. – Matroska

+0

Masz na myśli, że chcesz przekątnej gestu jednocześnie przewijać zarówno kontener, jak i listview - jak, przesuń palec w górę i w prawo i przewiń w scrollview prawy i listview przewijają w górę w tym samym czasie? –

Odpowiedz

0

Sugerowałbym posiadanie twojego horiziontallayout jako widoku głównego, który zwrócisz w getView() w twoim adapterze. W ten sposób każdy wiersz będzie przewijał się od siebie. Jeśli to nie zadziała od razu, być może będziesz musiał ustawićItemsCanFocus (true) dla swoich wierszy, aby podać dane wejściowe do twojego widoku poziomego.

+0

Nie, ale problem polega na tym, że nie chcę poziomo przewijać elementów listview, ale kart, ponieważ jest ich wiele i chcę je wszystkie zobaczyć.Więc jeśli [i] reprezentują rozmiar ekranu i | jest kartą/listview, to jest to, co mam: [| | | |] | | | | więc poziome zwój to oglądanie kart. – Matroska

1

Proponuję, aby wziąć ViewFlipper, aby nadać efekt przewijania w poziomie. Następnie dodaj ListView do flippera jako dziecko. Użyj gestu, aby przesunąć go w prawo iw lewo.

ListView będzie nadal przewijany w pionie, a jeśli nie możesz ustawić OnItemClickListener na ListView, możesz użyć metody SingleTap Gesture.

ListView inside View flipper discussion 1 i ListView inside View Flipper Discussio 2

+0

Interfejs zmieni się bardzo w ten sposób ... – Matroska

+0

Interfejs się zmieni, ale możesz go jakoś spersonalizować – Sameer

Powiązane problemy