如何处理android屏幕方向的变化

时间:2015-01-13 21:12:16

标签: android android-layout

我刚刚进入Android开发阶段并对布局提出了几个问题。

我有一个RelativeLayout作为我的根元素,在里面我按顺序有以下项目:

TextView,TextView,Button,Button,Button,TextView

当我以纵向查看布局/活动时,一切都很好。然而,当我将手机切换到横向时,设计"串联起来"并且第一个Button与第二个TextView重叠,我只能部分地看到最后一个Button的背景颜色,最后一个TextView文本落在该Button上。

没有滚动条或查看整个显示的方法。当屏幕旋转时,有没有办法让我的布局保持不变?我知道我不会在横向方向上容纳这6个元素,但我认为布局只是可以滚动来查看其余的元素?

2 个答案:

答案 0 :(得分:2)

一个简单的技巧是将整个RelativeLayout包装在ScrollView(http://developer.android.com/reference/android/widget/ScrollView.html)中。

请记住,在这种情况下,Scrollview只能包含一个布局元素,因为你已经有了一个根相对布局,这很好!

当屏幕包含内容时,我通常将整个布局或其中很大一部分放在ScrollView中,不仅可以帮助用户在将设备切换到纵向模式时查看内容,还可以帮助用户使用设备较小的屏幕会看到您的所有内容

您可以使用Eclipse或Android Studio上的布局编辑器轻松查看外观。

在Android Studio上,只需打开布局文件并切换到设计选项卡,然后在上方有一个图标可以更改方向。

答案 1 :(得分:0)

  1. LinearLayout可以保证视图位于彼此之下,而不是重叠。如果您没有指定彼此相关的每个视图位置,则RelativeLayout不会这样做。

  2. 如果不适合屏幕,Android默认情况下不会使您的布局可滚动。您必须将布局包装在ScrollView中。

  3. 正如所指出的,您可以为不同的屏幕尺寸创建不同的布局。您也可以使用ScrollView创建一个,当所有内容都适合屏幕时(纵向模式),它将没有任何区别。