如何区分两个"观点"从彼此重叠

时间:2014-07-09 19:52:03

标签: java android android-layout

我是android编程的初学者,并试图构建一个简单的应用程序。 每当我尝试制作多个视图时,它们就会相互叠加。 我正在尝试创建一个文本字段和一个按钮,但是当我运行它时,文本字段和按钮相互重叠,但我希望它们相隔一段距离。 我使用以下代码。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android1="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    tools:context="com.example.new1.MainActivity" >

 <EditText android:id="@+id/edit_message"
        android:layout_weight= "1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="@string/edit_message" />

 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send" />

</RelativeLayout>

我在三星Galaxy S2上查看此代码。 有没有人知道这个问题的解决方案,可以指导我在哪里做错了。

3 个答案:

答案 0 :(得分:1)

使用LinearLayout以便元素水平或垂直堆叠,或使用android:layout_toRightOf="@id/edit_message"等属性来控制RelativeLayout内的位置。

在此处详细了解LinearLayouthttp://developer.android.com/guide/topics/ui/layout/linear.htmlRelativeLayouthttp://developer.android.com/guide/topics/ui/layout/relative.html

答案 1 :(得分:1)

RelativeLayout相对于彼此定位视图。因此,如果您未指定视图之间的关系,则所有视图将一个放在另一个之上。您可以将LinearLayout与orientation属性一起使用,也可以定义视图之间的关系。以下可以是您的工作代码

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

    <EditText
        android:id="@+id/edit_message" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
         android:hint="@string/edit_message"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/edit_message"
        android:text="@string/button_send" />

</RelativeLayout>

这里有android:layout_toRightOf =&#34; @ id / edit_message&#34;让您的按钮位于编辑文本的右侧

答案 2 :(得分:0)

根据您的需要,水平布局或垂直布局,您需要一个合适的布局xml。

您使用relativeLayout,您必须指定要布局的父级,如:

android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"

如果您的初学者更好地了解垂直或水平模式下的线性布局。

然后你不必指定它。

像这样:

 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="100"
    >
   <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/bResults"
        android:text="Try Command"
        android:layout_weight="20" />

    <ToggleButton
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tbPassword"
        android:layout_weight="80"
        android:checked="true"
        />
 </LinearLayout>

这会让你的两个按钮彼此相邻