如何从右到左绘制元素?

时间:2011-08-16 09:32:21

标签: android drawing relativelayout fill-parent

我希望在屏幕的右侧有一个按钮,以及一个可以在按钮左侧占据所有位置的编辑文本。我该怎么办?

此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"
    />

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

当我必须这样做时,我使用LinearLayoutlayout_weight xml属性。 这个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%。