EditText如何占用布局中的所有剩余空间?

时间:2014-09-18 07:00:05

标签: java android android-layout android-edittext

我有一个水平方向的线性布局(代码中的linear2)。 我在这个布局中放了一个按钮,editText和第二个按钮。 我想将按钮的宽度设置为“wrap_content”。 如何在不使用重量的情况下将所有剩余空间分配给editText? 是否可以在不使用重量的情况下将此布局放在底部 垂直观点?

代码在这里:

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

    <ScrollView
        android:id="@+id/scroll"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:orientation="vertical"
        android:layout_weight="12">
        <LinearLayout
            android:id="@+id/linear1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:id="@+id/linear2"
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="2"
        android:orientation="horizontal">
        <ImageView
            android:id="@+id/buttonClip"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_gravity= "center_vertical|center_horizontal"/>

        <EditText
            android:id="@+id/editChatMessage"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:gravity="top|left"
            android:maxLines="5"
            android:layout_gravity= "center_vertical|center_horizontal"
            android:layout_weight="5"/>
        <Button
            android:id="@+id/buttonProcess"
            android:text='Process'
            android:gravity="center"
            android:layout_gravity= "center_vertical|center_horizontal"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>
    </LinearLayout>
</LinearLayout>

谢谢!

2 个答案:

答案 0 :(得分:2)

请尝试这种方式,希望这有助于您解决问题。

在这里,我尝试改进您的LinearLayout权重分配

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/backNormal"
    android:orientation="vertical">
    <ScrollView
        android:id="@+id/scroll"
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="0.85">
        <LinearLayout
            android:id="@+id/linear1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:id="@+id/linear2"
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="0.15"
        android:gravity="center">
        <ImageView
            android:id="@+id/buttonClip"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:src="@drawable/ic_launcher"
            android:scaleType="fitXY"/>

        <EditText
            android:id="@+id/editChatMessage"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:gravity="top|left"
            android:maxLines="5"
            android:layout_weight="1"/>
        <Button
            android:id="@+id/buttonProcess"
            android:text='Process'
            android:gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"/>
    </LinearLayout>
</LinearLayout>

答案 1 :(得分:0)

 Keep your Edittext hight wrap_content.....that's it.

     <EditText
        android:id="@+id/editChatMessage"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:gravity="top|left"
        android:maxLines="5"
        android:layout_gravity= "center_vertical|center_horizontal"
        android:layout_weight="5"
        />