我有EditText
和ImageButton
:
<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
中输入文字,否则一切似乎都没问题。
一开始它看起来像这样:
输入文字后,我的ImageButton
会变小:
如何使EditText
停滞不前?
答案 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>