这里有一个非常相似的问题:
How to put an EditText and Button next to each other?
但是,该问题将LinearLayout作为根元素,而我的布局则没有。
我也已经读过这篇文章了:
http://android-developers.blogspot.com/2009/02/android-layout-tricks-1.html
我做的事情几乎与我做的一样,但是我的设备一直在#include <ctype.h>
void decode (unsigned char* msg) {
// Check content, allowing for upper/lower case.
msg[0] = toupper (msg[0]);
msg[1] = toupper (msg[1]);
if ((msg[0] != 'D') && (msg[1] != 'O')) return;
if ((msg[2] < '1') || (msg[2] > '5')) return;
if (msg[3] != '=') return;
if ((msg[4] != '0') && (msg[4] != '1')) return;
// All content validated, make change, either turning off.
if (msg[4] == '0') {
switch (msg[2]) {
case '1': LATGbits.LATG1 = 0; break;
case '2': LATGbits.LATG0 = 1; break;
case '3': LATGbits.LATG13 = 1; break;
case '4': LATGbits.LATG14 = 1; break;
case '5': LATGbits.LATG12 = 1; break;
}
return;
}
// Or turning on.
switch (msg[2]) {
case '1': LATGbits.LATG1 = 1; break;
case '2': LATGbits.LATG0 = 0; break;
case '3': LATGbits.LATG13 = 0; break;
case '4': LATGbits.LATG14 = 0; break;
case '5': LATGbits.LATG12 = 0; break;
default: return;
}
sendString("OK");
}
元素的顶部上显示按钮:
EditText
理想情况下,<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:singleLine="true"
android:inputType="text" />
<Button
android:id="@+id/search_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignEnd="@+id/editText"
android:layout_alignRight="@+id/editText"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:text="@string/search_button" />
</RelativeLayout>
元素应该是我设备宽度的75%左右,按钮是剩余的25%
我接下来有使用Layouts的经验,这是我第一次尝试从网页背景制作一个非常简单的应用程序。
答案 0 :(得分:1)
您应该使用LinearLayout。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editText"
android:layout_width="0dp"
android:weight="1"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="text" />
<Button
android:id="@+id/search_button"
android:layout_width="0dp"
android:weight="3"
android:layout_height="wrap_content"
android:text="@string/search_button" />
</LinearLayout >
修改强> 替代解决方案,但这种方式editText是固定宽度,按钮获取所有剩余宽度
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:singleLine="true"
android:inputType="text" />
<Button
android:id="@+id/search_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/editText"
android:layout_toEndOf="@+id/editText"
android:text="@string/search_button" />
</RelativeLayout>
答案 1 :(得分:0)
使用按钮中的属性android:layout_toRightOf = "@id/editText"
,并将修复宽度指定为按钮,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ems = "15"
android:inputType="text" />
<Button
android:id="@+id/search_button"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/editText"
android:text="@string/search_button" />
</RelativeLayout>
无需使用额外属性,例如android:layout_alignParentTop
等。
答案 2 :(得分:0)
首先,您将fill_parent
作为两个元素的宽度。 fill_parent
表示与父相同的宽度,因此它们不能水平对齐(顺便说一句,您应该使用match_parent
代替,它们是相同的,但前者已被弃用几年前...)。让他们坐在彼此旁边你应该做类似的事情
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Put the Button first, so the EditText can occupy all the remaining space -->
<Button
android:id="@+id/search_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:text="@string/search_button" />
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_toStartOf="@id/search_button"
android:layout_toLeftOf="@id/search_button"
android:singleLine="true"
android:inputType="text" />
</RelativeLayout>
可悲的是,你无法给出百分比。要完成此任务,您需要使用LinearLayout
并给予权重:
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".75"
android:singleLine="true"
android:inputType="text" />
<Button
android:id="@+id/search_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".25"
android:text="@string/search_button" />
</LinearLayout>