如何将EditView和Button并排占据90%的宽度?

时间:2012-05-05 13:12:55

标签: android android-layout android-ui

在Android中,我正在努力实现这一目标: Search EditText and Button side by side

基本上,能够使用EditText并排添加按钮,它们都占据顶行宽度的90%。 (我不关心像twitter图标这样的徽标。)

我尝试过使用layout_weight的LinearLayout,但它们根本没有正确显示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum = "1.0"
    android:orientation="vertical"
    android:background = "#faadadad" >

    <EditText
        android:layout_width="0dip"
        android:layout_height="0dip"
        android:layout_weight = "0.8"
        android:layout_marginLeft = "2dip"
        android:layout_marginTop = "1dip"
        android:layout_marginBottom = "1dip"        
        android:hint="Search Terms" />

    <Button android:text = "?" 
        android:layout_width = "0dip" 
        android:layout_height="2dip"  android:layout_weight = "0.2"/>

    </LinearLayout>    

我在RelativeLayout中尝试的任何东西都看起来不对(我尝试将2元素之间的边距设置为0dips,没有运气。而且我也无法获得90%的宽度要求。)

我做错了什么?提前谢谢。

1 个答案:

答案 0 :(得分:2)

尝试使用以下内容:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum = "1.0"
    android:orientation="horizontal"
    android:background = "#faadadad" >
    <LinearLayout android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.8">    
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft = "2dip"
            android:layout_marginTop = "1dip"
            android:layout_marginBottom = "1dip"        
            android:hint="Search Terms" />
    </LinearLayout>
    <Button android:text = "?" 
        android:layout_width = "0dip" 
        android:layout_height="wrap_content"
    android:layout_weight = "0.2"/>
</LinearLayout>

所以基本上,当你使用水平LinearLayout时,layout_weight会水平工作,即根据layout_weight参数(layout_width =“0dp”)划分宽度。如果使用垂直LinearLayout,则layout_weight垂直工作,即根据layout_weight参数(layout_height =“0dp”)垂直划分高度。

希望它对你有所帮助。