我有一个菜单活动,其中有几个定位按钮。在纵向模式下,它完全适合我的手机屏幕,但在横向模式下,它会被破坏。我知道当我有固定定位时,这将是结果。任何人都可以告诉我如何定位我的按钮,以便我的活动保持其形式也在横向模式?谢谢。
这是我的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>
答案 0 :(得分:3)
在纵向模式下,它完全适合我的手机屏幕,但在 景观模式它被摧毁了。
这适用于基于相对的布局。开发人员在这种情况下通常会做什么:
layout-land
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教程。