如何处理 android 屏幕方向变化

How to handle android screen orientation change

我刚刚开始 Android 开发,有几个关于布局的问题。

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

TextView,TextView,按钮,按钮,按钮,TextView

当我以纵向查看 layout/activity 时一切正常。但是,当我将 phone 切换为横向时,设计 "bunches up" 并且第一个 Button 与第二个 TextView 重叠,我只能部分看到最​​后一个 Button 的背景颜色,最后一个 TextView 文本落在该 Button 上。

没有滚动条或查看整个显示的方法。有什么方法可以让我在屏幕旋转时保持布局不变?我知道我不会在横向放置这 6 个元素,但我认为布局可以简单地滚动以查看其余元素?

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

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

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

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

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

  1. A LinearLayout 将保证视图位于彼此下方,而不是重叠。如果您不指定彼此之间的关系中的每个视图位置,则 RelativeLayout 不会执行此操作。

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

  3. 如前所述,您可以为不同的屏幕尺寸创建不同的布局。您也可以只创建一个 ScrollView,当所有内容都适合屏幕时(纵向模式。)

  4. 没有任何区别