2

我有一个菜单活动,其中有几个定位按钮。在纵向模式下它非常适合我的手机屏幕,但在横向模式下它被破坏了。我知道当我有固定的定位时,这将是结果。谁能告诉我如何定位我的按钮,以便我的活动在横向模式下也保持其形式?谢谢你。

这是我的xml文件:

  <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >


<Button
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:background="@drawable/bezpecnost_over"
     android:layout_marginLeft="30dp"
     android:layout_marginTop="50dp"


      />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/kurenie_over"
    android:layout_marginLeft="200dp"
    android:layout_marginTop="50dp"

     />

  <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/osvetlenie_over"
    android:layout_marginLeft="200dp"
    android:layout_marginTop="200dp" 
    android:onClick="obrOsv"    />


<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:background="@drawable/pohodlie_over"
    android:layout_marginLeft="30dp"
    android:layout_marginTop="200dp"
    />

 </RelativeLayout>
4

2 回答 2

3

在纵向模式下它非常适合我的手机屏幕,但在横向模式下它被破坏了。

对于基于相对的布局,这是预期的。开发人员在这种情况下通常会做什么:

  • 在 res 下创建一个文件夹,称为layout-land
  • 在纵向模式下制作一个与布局同名的xml (包含在res/layout
  • 横向模式的位置。

由于xml文件名相同,所以该activity设置内容视图的时候

setContentView (R.layout.my_layout);

将使用my_layout.xml文件layout-land夹中的文件。

另请阅读Android 文档中的Layouts & Supporting Multiple Screens,它们都有有用的信息,后者讨论了不同的限定符(例如layout-land)。

于 2013-02-12T22:18:34.370 回答
0

因此,您正在使用相对布局通过增加边距来水平间隔按钮?这完全不了解布局是如何工作的。首先将 RelativeLayout 替换为具有方向设置为水平的 LinearLayout,然后去掉所有的边距——边距应该只是元素之间的几个像素。我建议您阅读有关布局如何工作的 Android 教程。

于 2013-02-12T22:18:48.530 回答