Android:从纵向转为横向时的定位按钮

时间:2013-02-12 22:14:22

标签: android layout button position

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

这是我的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>

2 个答案:

答案 0 :(得分:3)

  

在纵向模式下,它完全适合我的手机屏幕,但在   景观模式它被摧毁了。

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

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

由于xml文件名相同,所以当活动时间设置内容视图时

setContentView (R.layout.my_layout);

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

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

答案 1 :(得分:0)

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