Моя деятельность выглядит так
| header |
|------------------|
| ViewGroup |
| that fills |
| the screen |
| |
| centered |
| button |
| |
|------------------|
| footer |
Группа представлений, заполняющая экран, является дочерней по отношению к RelativeLayout, который RelativeLayout заполняет экран с помощью заголовка fill_parent и layout_below и нижнего колонтитула layout_above. ViewGroup под этим RelativeLayout устанавливается равной ширине и высоте RelativeLayout во время выполнения.
Причина, по которой во время выполнения установлена одинаковая высота, заключается в том, что эту группу представлений можно перетаскивать пальцем влево (аналогично домашнему экрану Android). Если перетащить ее влево, это нормально. Но если я перетащу его вправо, мои размеры fill_parent испортятся.
| header |
|------------------|
| ' ViewGroup | '
| ' that fills| '
| ' the screen| '
| ' | '
| ' centered | <-- button not centered. It is only centered on the visible area, not the whole thing
| ' button | '
| ' | '
| ' | '
|------------------|
| footer |
Я позиционируюсь так, устанавливая левое поле ViewGroup, которое сместит его вправо (или отрицательно, чтобы сместить его влево)
Почему я не могу использовать HorizontalScrollView
.
Вот вид сверху на андроид
' previous ' current ' next ' # Three panes that can be dragged to switch between
| | # The android screen bounderies
Я планирую, чтобы пользователь мог перейти к следующему / предыдущему, перетаскивая экран вправо и влево. Если пользователь немного перетаскивает экран и делает это медленно
' previous ' current ' next '
| |
Тогда экраны должны анимироваться обратно на место
' previous ' current ' next '
| |
Если пользователь делает это быстро
' previous ' current ' next '
| |
Тогда экраны должны анимировать оставшуюся часть пути
' previous ' current ' next '
| |
Предыдущий должен стать новым током, и у нас должен быть новый предыдущий
' previous ' current ' next '
| |
Я использовал прокрутку, я бы делал что-то вроде этого
' previous ' current ' next '
| |
Теперь нет места для нового предыдущего, если я не прыгаю по прокрутке
' previous ' current ' next '
| |
, что звучит для меня еще хуже.
Так что мои варианты
AbsoluteLayout
(устарело / не используется)
RelativeLayout.LayoutParams.setMargins
(см. Ниже. Вот чем я сейчас занимаюсь)
- Напиши свой
LayoutManager
(звучит проще, чем есть)
- Нарисуйте пиксели на экране вместо использования
View
s (DirectDraw или OpenGL)
HorizontalScrollView