我是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上查看此代码。 有没有人知道这个问题的解决方案,可以指导我在哪里做错了。
答案 0 :(得分:1)
使用LinearLayout
以便元素水平或垂直堆叠,或使用android:layout_toRightOf="@id/edit_message"
等属性来控制RelativeLayout
内的位置。
在此处详细了解LinearLayout
:http://developer.android.com/guide/topics/ui/layout/linear.html和RelativeLayout
:http://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>
这会让你的两个按钮彼此相邻