@ GeorgeBailey +1 Ух ты, чувак, тряхнул !!, отрицательный запас Right сделал свое дело !!

еятельность выглядит так

| 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 (Звучит проще, чем есть)Нарисуйте пиксели на экране вместо использованияViews (DirectDraw или OpenGL)HorizontalScrollView

Ответы на вопрос(1)

Ваш ответ на вопрос