Android LinearLayout填充宽度
我想知道为什么会发生这种情况:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:gravity="center_vertical"
android:layout_height="wrap_content" android:layout_gravity="top"
android:background="@drawable/gradient" android:focusable="true"
android:paddingTop="5dip" android:paddingBottom="5dip"
android:focusableInTouchMode="true">
<EditText android:id="@+id/searchField"
android:layout_width="wrap_content" android:layout_height="fill_parent"
android:paddingTop="2dip" android:paddingBottom="2dip"
android:paddingLeft="10dip" android:paddingRight="10dip"
android:inputType="textVisiblePassword" android:radius="5dip"
android:layout_marginLeft="10dip"
android:background="@drawable/search_background" android:textColor="#000000" />
<Button android:id="@+id/info" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:background="@drawable/info_btn" />
</LinearLayout>
如果我将“fill_parent”设置为我的EditText的layout_width,它会占据父级的整个宽度并且按钮消失(我猜它隐藏在EditText下方)。
有人能给我解释一下吗?我想让 Button 采用自己的宽度,而 EditText 采用剩余的宽度。
I am wondering why this happens :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:gravity="center_vertical"
android:layout_height="wrap_content" android:layout_gravity="top"
android:background="@drawable/gradient" android:focusable="true"
android:paddingTop="5dip" android:paddingBottom="5dip"
android:focusableInTouchMode="true">
<EditText android:id="@+id/searchField"
android:layout_width="wrap_content" android:layout_height="fill_parent"
android:paddingTop="2dip" android:paddingBottom="2dip"
android:paddingLeft="10dip" android:paddingRight="10dip"
android:inputType="textVisiblePassword" android:radius="5dip"
android:layout_marginLeft="10dip"
android:background="@drawable/search_background" android:textColor="#000000" />
<Button android:id="@+id/info" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:background="@drawable/info_btn" />
</LinearLayout>
If I set "fill_parent" to my EditText's layout_width, it takes the whole width of the parent and the button disappears (I guess it is hidden below the EditText).
Can anybody explain me? I would like to get the Button takes its own width and the EditText takes the remaining width.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您告诉 EditText 为 fill_parent,因此它填充屏幕(整个宽度,没有为按钮留下空间)。
您希望按钮包裹其内容并编辑文本来填充其余部分,您可以使用layout_weight属性来做到这一点:(
我取出了您的可绘制引用以使其对其他人通用)
另一方面不让您的XML看起来不错Eclipse 中更简洁且更易于维护:
然后,当您打开 XML 文件时,先按 CTRL+A,再按 CTRL,即可修复您的 XML 文件+SHIFT+F 可以很好地格式化它!
Your telling the EditText to fill_parent, therefore it fills the screen (the whole width, leaving no space for your button).
You want the button to wrap its content and the edit text to fill the remainder, you can do this using layout_weight property:
(I took your drawable references out to make it generic for other people)
On a side not to make your XML look nice an neat and more maintainable in eclipse:
Then you can fix your XML files, when you have an XML file open CTRL+A then CTRL+SHIFT+F will format it nicely!