ScrollView Внутри горизонтального прокрутки не работает должным образом

Надеюсь, у нас есть хорошее время. У меня возникла небольшая проблема. Когда я размещаю вертикальный вид прокрутки в горизонтальном прокрутке, тогда вертикальное прокрутка не работает должным образом (я тоже попробовал стих, разместив горизонтальный вид прокрутки внутри вертикали).

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

Любезно предоставите любое решение. С уважением

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:weightSum="1" > <LinearLayout android:id="@+id/linearLayout21" android:layout_width="fill_parent" android:layout_height="40dip" android:background="@drawable/top_bar_bg" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="1dip" android:layout_marginTop="1dip" android:text=" Image card" android:textAppearance="?android:attr/textAppearanceLarge" > </TextView> </LinearLayout> <RelativeLayout android:id="@+id/relativeLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" Description" android:textSize="20sp" > </TextView> <EditText android:id="@+id/IMAGEVIEW_TEXTVEIW" android:layout_width="fill_parent" android:layout_height="100dp" android:layout_below="@+id/textView1" android:clickable="false" android:cursorVisible="false" android:focusable="false" android:gravity="top" > </EditText> </RelativeLayout> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" Image" android:textSize="20sp" > </TextView> </LinearLayout> <RelativeLayout android:id="@+id/RelativeLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="5dip" android:layout_marginTop="5dip" android:orientation="vertical" > <LinearLayout android:id="@+id/linearLayout2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <HorizontalScrollView android:id="@+id/horizontalScrollView1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="fill_vertical|fill_horizontal" > <RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" android:layout_margin="5dip" > <ScrollView android:id="@+id/scrollView1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" > <RelativeLayout android:id="@+id/relativeLayout2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerInParent="true" > <ImageView android:id="@+id/IMAGE_VIEW" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/diamond" > </ImageView> </RelativeLayout> </RelativeLayout> </ScrollView> </RelativeLayout> </HorizontalScrollView> </LinearLayout> </RelativeLayout> </LinearLayout> 

См. Ниже xml.This работает для меня. Упование будет работать и для вас.

  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <HorizontalScrollView android:id="@+id/horizontal_scroll_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scrollbars="horizontal"> <ScrollView android:id="@+id/vertical_scroll_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scrollbars="vertical"> <LinearLayout android:id="@+id/linear_layout" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TableLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/layout"> <!-- <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ksjdhfksjdhfksjdhfksdhfksjdhfksjdhfksjdhfkjsdhfkjsdfhkjsdfhkjhkjhkjhkjhkjhkjhkjhkjhkjhkjhkjhkjjjjjjjjjjjjjjjjjjjj" /> </TableRow> --> </TableLayout> <!-- childrens go here.. I have used an image view for demonstration --> </LinearLayout> </ScrollView> </HorizontalScrollView> </LinearLayout> 

Существует гораздо более простое решение, чем создание пользовательского представления:

Планировка:

 <HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scrollHorizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <ScrollView android:id="@+id/scrollVertical" android:layout_width="wrap_content" android:layout_height="match_parent" > <WateverViewYouWant/> </ScrollView> </HorizontalScrollView> 

Код (onCreate / onCreateView):

  final HorizontalScrollView hScroll = (HorizontalScrollView) value.findViewById(R.id.scrollHorizontal); final ScrollView vScroll = (ScrollView) value.findViewById(R.id.scrollVertical); vScroll.setOnTouchListener(new View.OnTouchListener() { //inner scroll listener @Override public boolean onTouch(View v, MotionEvent event) { return false; } }); hScroll.setOnTouchListener(new View.OnTouchListener() { //outer scroll listener private float mx, my, curX, curY; private boolean started = false; @Override public boolean onTouch(View v, MotionEvent event) { curX = event.getX(); curY = event.getY(); int dx = (int) (mx - curX); int dy = (int) (my - curY); switch (event.getAction()) { case MotionEvent.ACTION_MOVE: if (started) { vScroll.scrollBy(0, dy); hScroll.scrollBy(dx, 0); } else { started = true; } mx = curX; my = curY; break; case MotionEvent.ACTION_UP: vScroll.scrollBy(0, dy); hScroll.scrollBy(dx, 0); started = false; break; } return true; } }); 

Вы можете изменить порядок просмотра прокрутки. Просто измените их порядок в макете и в коде. И, очевидно, вместо WateverViewYouWant вы помещаете макет / представления, которые хотите прокрутить в обоих направлениях.

Я не уверен, что вы можете достичь того, что вы пытаетесь сделать. По крайней мере, не в соответствии с тем, что я читал.

Тем не менее, вот блог от парня, который создал пользовательский прокрутка, который может соответствовать вашим потребностям.

http://blog.gorges.us/2010/06/android-two-dimensional-scrollview/

Intereting Posts
Android Intent, как приложение Gmail для привязки Невозможно создать actionbarsherlock: BuildConfig не может быть разрешен переменной Элементы перехвата запутались Отставание от задержки инициализации двигателя TTS Engine в Android Как использовать класс AsyncTask для обновления хода копирования другого каталога? Модернизация: добавить параметр runtime к интерфейсу? Сохранить битмап в функции файла Android: добавление кнопки к названию приложения? Как правило, система Android загружает собственную библиотеку (например, файл) из armeabi, armeabi-v7a, arm64-v8a? Почему это случилось? Как это исправить? Android: НЕОПРЕДЕЛЕННЫЙ ТОП-УРОВЕНЬ ИСКЛЮЧЕНИЯ: Андроид «заткнись», что именно происходит с памятью Как определить факторы, которые помогут воспроизвести ошибки веб-рендеринга для веб-браузеров Android? Могу ли я определить динамический фильтр намерений в приложении для Android? Как установить прослушиватель ontouch для чего-то нарисованного с помощью canvas: Android Никаких определений для устройств Kindle Fire, доступных в Android SDK Manager