Я очень устал искать решение для вертикальной и горизонтальной прокрутки.
Я прочитал, что в фреймворке нет никаких представлений / макетов, которые реализуют эту функцию, но мне нужно что-то вроде этого:
Мне нужно определить макет внутри другого, дочерний макет должен реализовывать прокрутку по вертикали / горизонтали для перемещения.
Изначально реализован код, который перемещал макет пиксель за пикселем, но я думаю, что это не правильный путь. Я попробовал это с ScrollView и Horizontal ScrollView, но ничего не работает так, как я хочу, потому что он реализует только вертикальную или горизонтальную прокрутку.
Canvas - это не мое решение, потому что мне нужно присоединить слушателей к чьим-то дочерним элементам.
Что я могу сделать?
android
scrollview
Kronos
источник
источник
Ответы:
Смешав некоторые из предложенных выше предложений, удалось найти хорошее решение:
Пользовательский ScrollView:
Пользовательский HorizontalScrollView:
ScrollableImageActivity:
расположение:
источник
LinearLayout
я думаю , вам не нужно начальное значение )Поскольку это, кажется, первый результат поиска в Google для "Android вертикальный + горизонтальный ScrollView", я подумал, что должен добавить это здесь. Мэтт Кларк создал собственный вид на основе источника Android, и он, кажется, отлично работает: двумерный ScrollView
Помните, что у класса на этой странице есть ошибка, вычисляющая горизонтальную ширину представления. Исправление Мануэля Хилти в комментариях:
Изменить: Ссылка больше не работает, но вот ссылка на старую версию поста .
источник
fillViewport
иonMeasure
точно так же, как источник ScrollView (v2.1). Я также изменил два первых конструктора с помощью:this( context, null );
иthis(context, attrs, R.attr.scrollViewStyle);
. При этом я могу использовать полосу прокрутки, используяsetVerticalScrollBarEnabled
иsetHorizontalScrollBarEnabled
в коде.Я нашел лучшее решение.
XML: (design.xml)
Java-код:
Это работает !!!
Если вы хотите загрузить другой макет или элемент управления, структура будет такой же.
источник
Я им пользуюсь и отлично работает
Ссылка на источник находится здесь: Android-spa
источник
ImageView
контента в качестве прокручиваемого контента, оно может работать или не работать для произвольного другого контента, и что Google считает, что с вашим подходом будут проблемы. Мнение Google также имеет значение в отношении будущего развития - они, возможно, не пытаются убедиться, что ваш подход работает в долгосрочной перспективе, если они советуют людям не использовать его в первую очередь.Мое решение основано на ответе Махди Хиджази , но без каких-либо пользовательских представлений:
Планировка:
Код (onCreate / onCreateView):
Вы можете изменить порядок просмотра прокрутки. Просто измените их порядок в макете и в коде. И, очевидно, вместо WeverViewYouWant вы помещаете макет / представления, которые вы хотите прокрутить в обоих направлениях.
источник
Вариант № 1: Вы можете придумать новый дизайн пользовательского интерфейса, который не требует одновременной горизонтальной и вертикальной прокрутки.
Вариант № 2: Вы можете получить исходный код
ScrollView
иHorizontalScrollView
узнать, как его реализовала основная команда Android, и создать свою собственнуюBiDirectionalScrollView
реализацию.Вариант № 3: Вы можете избавиться от зависимостей, которые требуют от вас использовать систему виджетов и рисовать прямо на холсте.
Вариант № 4: Если вы наткнулись на приложение с открытым исходным кодом, которое, кажется, реализует то, что вы ищете, посмотрите, как они это сделали.
источник
Попробуй это
источник
Поскольку ссылка на двухмерное прокручивание не работает, я не смог ее получить, поэтому создал свой собственный компонент. Он справляется со сбрасыванием и работает правильно для меня. Единственным ограничением является то, что wrap_content может не работать должным образом для этого компонента.
https://gist.github.com/androidseb/9902093
источник
У меня есть решение вашей проблемы. Вы можете проверить код ScrollView, он обрабатывает только вертикальную прокрутку, игнорирует горизонтальную и изменить это. Мне нужен был вид, похожий на веб-просмотр, поэтому я модифицировал ScrollView, и он хорошо работал для меня. Но это может не соответствовать вашим потребностям.
Дайте мне знать, на какой пользовательский интерфейс вы ориентируетесь.
С Уважением,
Рави Пандит
источник
Играя с кодом, вы можете поместить HorizontalScrollView в ScrollView. Таким образом, вы можете использовать два метода прокрутки в одном представлении.
Источник: http://androiddevblog.blogspot.com/2009/12/creating-two-dimensions-scroll-view.html
Я надеюсь, что это может помочь вам.
источник
использовать это, как я пытался это я исправил
Поместите все свои XML-макет внутри
Я объяснил это в этой ссылке вертикальная прокрутка и горизонтальная прокрутка прокрутки вместе
источник