0

我想在屏幕的右侧有一个按钮,以及一个编辑文本,它可以占据按钮左侧的所有位置。我能怎么做?

此 xml 将屏幕左侧的按钮打印给我,但之前什么都没有:/

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

    <Button 
        android:id="@+id/index_bouton_recherche"
        android:layout_width="45px"
        android:layout_height="45px"
        android:background="@drawable/loupe"
    />

    <EditText 
        android:id="@+id/index_champs_recherche"
        android:layout_width ="fill_parent"
        android:layout_height="wrap_content"
        android:maxLines="1" 
        android:layout_toLeftOf="@id/index_bouton_recherche"
    />
4

2 回答 2

1

试试这个

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

    <Button 
        android:id="@+id/index_bouton_recherche"
        android:layout_width="45px"
        android:layout_height="45px"
        android:background="@drawable/loupe"
    />

    <EditText 
        android:id="@+id/index_champs_recherche"
        android:layout_width ="fill_parent"
        android:layout_height="wrap_content"
        android:maxLines="1" 
        android:layout_toLeftOf="@id/index_bouton_recherche"
        android:layout_weight="1"
    />
</LinearLayout>
于 2011-08-16T09:36:09.300 回答
1

当我必须这样做时,我使用LinearLayoutlayout_weightxml 属性。此 XML 将解决您的问题:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
>
    <EditText 
        android:id="@+id/index_champs_recherche"
        android:layout_width ="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:maxLines="1" 
    />
    <Button 
        android:id="@+id/index_bouton_recherche"
        android:layout_width="45px"
        android:layout_height="45px"
        android:background="@drawable/loupe"
    />
</LinearLayout>

layout_width="0dp"意味着最初,视图不需要任何空间。Button 是wrap_content,所以它只需要它的空间。之后应用该layout_weight属性,它共享布局上的剩余空间(方向的宽度=水平,垂直的高度)。默认视图权重为 0,因此使用 1,EditText 将占用 100% 的剩余空间。

于 2011-08-16T09:52:49.993 回答