我想知道为什么会这样:
<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取剩余的宽度。
答案 0 :(得分:24)
你告诉EditText为fill_parent,因此它填满了屏幕(整个宽度,没有为你的按钮留出空间)。
您希望按钮包装其内容和编辑文本以填充余数,您可以使用layout_weight属性执行此操作:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="center_vertical"
android:paddingTop="5dip"
android:paddingBottom="5dip"
android:orientation="horizontal">
<EditText
android:id="@+id/searchField"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1"
android:layout_marginLeft="10dip"
android:paddingTop="2dip"
android:paddingBottom="2dip"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:radius="5dip"
android:inputType="textVisiblePassword"
android:textColor="#000000" />
<Button
android:id="@+id/info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:text="Blah" />
</LinearLayout>
(我把你的可绘制参考文献用于其他人的通用)
另一方面,不要让你的XML在eclipse中看起来更整洁,更易于维护:
窗口&gt;偏好&gt; XML&gt; XML文件&gt;编辑
线宽120
拆分多个属性TICK
对齐最终括号UNTICK
在PCDATA UNTICK中保留空白标签
清除所有空行UNTICK
在关闭TICK之前插入空格
点击确定
然后你可以修复你的XML文件,当你打开一个XML文件CTRL + A然后CTRL + SHIFT + F将很好地格式化它!