2014-02-14 3 views
0

Хорошо, название грязное, но вот концепция.Переместить ListView или MapFragment зависит от положения прокрутки

Когда активность начинает это будет выглядеть следующим образом: Start

Если вы продолжаете тянуть вниз, когда ListView достигает верхней карты будет получить больше, как это: ListView bottom

Но если вы прокрутите вниз в ListView карта станет меньше: Map top

Теперь это возможно на Android. Спасибо за сообщение: D

ответ

0

В порядке, это возможно. То, как вы это делаете, - это сначала определить направление движения пользователя. Вы можете разместить просмотр списка и отобразить его в двух отдельных фрагментах, а затем определить, как пользователь нажимает на любой фрагмент, добавляя в SimpleOnGestureListener (для ваших целей вы будете иметь дело с вертикальным ударом).

Тогда вы программно установите вес фрагмента, чтобы стать больше/меньше, в зависимости от обстоятельств. Поскольку ваш список и карта будут находиться в двух отдельных контейнерах (которые могут быть фрагментами, LinearLayout, RelativeLayout и т. Д.), Мне понадобится более подробная информация, прежде чем я скажу, что вы так поступаете. Но чтобы ответить на ваш вопрос, да, это возможно. Я хотел бы предложить вам взглянуть на следующие две ссылки, чтобы получить лучшее представление, а затем определить, как действовать (она не может быть такой же, как ваш случай, но вы, по крайней мере, получить общее представление):

How to detect swipe direction between left/right and up/down

How to add Action bar options menu in Android Fragments

0

Возможно, вы измените размер карты при прокрутке списка, хотя я думаю, что производительность будет невелика. Карты Google обычно требуют времени для рендеринга, и у вас нет реального контроля над ним. Если вы хотите пройти этот маршрут, попробуйте установить новые LayoutParams на карте.

Другим вариантом было бы заменить карту ImageView. Карты api поддерживают это с помощью snapshot() method. Затем вы захотите легко заменить карту изображением при прокрутке.

Третий вариант - это то, что делают карты Google. В принципе, у вас есть карта, заполняющая экран, а затем скользящая компоновка, которая поднимается снизу и покрывает карту. Этот ящик сдвигается вверх, а затем карта повторно центрируется, так что какая бы ни была видимая часть показывает маркер. Это, вероятно, будет иметь лучшую производительность любого варианта.

Смежные вопросы