Android:有没有办法让fill_parent不缩小以适合父母的父母?

我的活动看起来像这样

| header           |
|------------------|
|  ViewGroup       |
|  that fills      |
|  the screen      |
|                  |
|     centered     |
|      button      |
|                  |
|------------------|
| footer           |

填充屏幕的视图组是RelativeLayout的子级,其中RelativeLayout用fill_parent和layout_below标头和layout_above页脚填充屏幕. RelativeLayout下的ViewGroup在运行时设置为与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的左边缘,以将其向右移动(或将其设置为负向左移动).

为什么我不能使用Horizo​​ntalScrollView.

这是android的顶视图

     ' 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(听起来比现在容易)
>将像素绘制到屏幕上,而不使用视图(DirectDraw或OpenGL)
> Horizo​​ntalScrollView

解决方法:

如果您将正的左边距设置为正,则还应将负的右边距设置为负.这样,ViewGroup可以继续离开屏幕右侧的边缘.

上一篇:php – 按不是第一个维度的数值对多维数组进行排序


下一篇:LinAlgError: Last 2 dimensions of the array must be square