如何使EditText不会自动更改它的大小

时间:2012-11-26 19:19:53

标签: android size android-edittext

我有EditTextImageButton

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/layout1"
    android:weightSum="1.0">

    <EditText
        android:id="@+id/searchBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="@string/search"
        android:layout_weight=".86"
        android:textStyle="italic|normal"
        android:typeface="normal"
        android:singleLine="true"
        android:ellipsize="end" />

    <ImageButton
        android:layout_height="match_parent"
        android:layout_width="0px"
        android:layout_weight=".14"
        android:background="@drawable/search_button_selector"/>

</LinearLayout>

除非我开始在EditText中输入文字,否则一切似乎都没问题。

一开始它看起来像这样:

enter image description here

输入文字后,我的ImageButton会变小:

enter image description here

如何使EditText停滞不前?

3 个答案:

答案 0 :(得分:4)

我相信将EditText的layout_width更改为android:layout_width="0dp"会修复它。这将允许LinearLayout控制宽度以填充权重所指示的空间。

答案 1 :(得分:2)

使用RelativeLayout并删除这些weight设置。只需将图像对齐到右侧,然后将EditText对齐到左侧,将“leftOf”对齐图像视图:

<EditText
    android:id="@+id/searchBox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="@string/search"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/searchButton"
    android:textStyle="italic|normal"
    android:typeface="normal"
    android:singleLine="true"
    android:ellipsize="end" />

<ImageButton
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_alignParentRight="true"
    android:background="@drawable/search_button_selector"/>

另外,您应该使用ImageButton设置android:src的图片,而不是android:background。将背景设置为透明色以消除默认按钮背景。

答案 2 :(得分:1)

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

    <ImageButton
        android:id="@+id/imageButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="@android:drawable/ic_search_category_default" />

    <EditText
        android:id="@+id/searchBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/imageButton"
        android:ellipsize="end"
        android:hint="Search..."
        android:inputType="text"
        android:singleLine="true"
        android:textStyle="italic|normal"
        android:typeface="normal" />

</RelativeLayout>

enter image description here