Использование макета ScrollViews в HorizontalScrollView

Я хочу создать своего рода макет карты с картами, которые содержат макет ListView внутри HorizontalScrollableView который может прокручивать карты по горизонтали. Все работает, но у меня проблемы с прокруткой. Я могу прокручивать список по вертикали, только если я не прокручиваю карты по горизонтали и наоборот.

Это основной контейнер:

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

Я раздуваю и добавляю элементы списка в линейный макет. Я бы хотел, чтобы плавное вертикальное и горизонтальное прокручивание без этих ограничений (одновременная горизонтальная и вертикальная прокрутка).

Как я могу это достичь?

Проверьте это, может помочь реализовать пользовательский двухсторонний прокручиваемый макет.

https://github.com/ened/Android-Tiling-ScrollView/blob/master/src/asia/ivity/android/tiledscrollview/TwoDScrollView.java

Если вы хотите, чтобы какие-либо функции ListView (например, просмотр репликации, фильтрация, адаптеры), все будет усложняться.

Я предлагаю вам использовать ViewFlipper для обеспечения эффекта прокрутки по горизонтали. Затем добавьте ListView в flipper в качестве дочернего. Используйте жест, чтобы переместить его вправо и влево.

ListView по-прежнему будет прокручиваться по вертикали, и если вы не сможете установить OnItemClickListener в ListView, вы можете использовать SingleTap-метод Gesture.

ListView внутри Просмотр обсуждения flipper 1 и ListView внутри View Flipper Обсудить 2

Я бы предложил, чтобы ваш horiziontallayout был корневым представлением, которое вы возвращаете в getView () в вашем адаптере. Таким образом, каждая строка будет прокручиваться отдельно друг от друга. Если это не сработает сразу, вам может потребоваться setItemsCanFocus (true) для ваших строк, чтобы предоставить вход в ваш horizontalscrollview.