1

我的 layout.xml 中有以下代码。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_height="wrap_content" android:layout_width="fill_parent">

    <EditText android:hint="@string/feed_url"
        android:id="@+id/feedUrl" android:textSize="14dp" android:inputType="textUri"
        android:layout_marginRight="45dp" android:layout_height="wrap_content" android:layout_width="fill_parent">
    </EditText>

    <Button android:id="@+id/getGraph"
        android:text="@string/get"
        android:layout_toRightOf="@id/feedUrl" 
        android:layout_alignParentRight="true"          
        android:layout_height="wrap_content" android:width="45dp" android:layout_width="wrap_content">
    </Button>

</RelativeLayout>

<WebView android:id="@+id/wv1" android:layout_height="wrap_content"
    android:layout_width="fill_parent" />
</LinearLayout>

在 eclipse 插件布局创建器中,EditText 和按钮正确显示。(见下面的截图)

替代文字

但在设备和模拟器上,该按钮并未隐藏。(见下面的截图)

替代文字

知道为什么按钮会隐藏在设备中吗?

4

3 回答 3

6

尝试对您的代码进行以下更改。您必须先定义按钮,因为它具有固定宽度,然后放置 EditText 以填充其余空间,放置在按钮的左侧。还必须首先定义按钮(即在 Android 2.2 之前)。

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent">

    <Button 
        android:id="@+id/getGraph"
        android:text="@string/get" 
        android:layout_alignParentRight="true"          
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content"
        />
    <EditText 
        android:hint="@string/feed_url"
        android:id="@+id/feedUrl" 
        android:textSize="14dp" 
        android:inputType="textUri"
        android:layout_marginRight="45dp" 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent"
        android:layout_toLeftOf="@id/getGraph" 
        />
</RelativeLayout>
于 2010-10-15T12:46:42.337 回答
0

您也可以使用 LinearLayout 而不是 RelativeLayout 来存档它。您可以使用android:layout_weight使 Button 不被 EditText 覆盖。以下是可能有效的示例 xml:

<LinearLayout android:orientation="horizontal"
    android:layout_height="wrap_content" android:layout_width="fill_parent">
    <EditText android:hint="@string/feed_url"
        android:id="@+id/feedUrl" android:textSize="14dp"
        android:inputType="textUri" android:layout_marginRight="45dp"
        android:layout_height="wrap_content" android:layout_width="fill_parent" />
    <Button android:id="@+id/getGraph" android:text="@string/get"       
        android:layout_height="wrap_content" android:width="45dp"
        android:layout_width="wrap_content"
        android:layout_weight="1" />
</LinearLayout>
于 2010-10-15T13:30:36.243 回答
0

我在布局生成器中看不到按钮...原因,我认为EditText宽度是填充父项,因此它会填充父项,将按钮推出。如果必须使用RelativeLayout,则需要EditText明确定义宽度。否则,您可能需要切换到水平LinearLayout并将编辑框的权重设置为“1”。

此外,还有以下无效选项RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal
于 2010-10-15T11:57:46.470 回答