我正在关注this教程,并说
所有视图的默认权重为0,因此如果指定任何权重 值大于0只到一个视图,然后该视图填充任何内容 在所有视图都获得所需空间后,空间仍然存在。所以,到 使用EditText元素填充布局中的剩余空间, 给它一个1的重量,让按钮没有重量。
您可以通过编写
来实现这一目标<EditText
android:layout_weight="1"
... />
我已经完成了。我还将layout_width
设置为0dp
,如教程所述。
现在,在Android Studio中,“预览”窗格中的所有内容都显示正常。但是当我调试我的应用时,EditText
控件会显示不。但是按钮出现在屏幕下方和最左边,好像EditText
控件实际上已经填满整个屏幕宽度并将其向下推(除了EditText
没有出现所以我无法确认这一点)。
我已经删除了weight属性并在其上设置了固定宽度,并且 让它显示,但很明显,这是不可取的。
为什么不出现EditText
控件?
这是我的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
tools:ignore="MergeRootFrame" android:orientation="horizontal">
<EditText android:id="@+id/edit_message"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message" />
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send" />
</LinearLayout>
如下所示,没有EditText控件。
答案 0 :(得分:1)
试试这段代码:您的editText将涵盖appx。 70%,你的按钮将覆盖剩余的总宽度...实际上,如果你使用0dp宽度方法,你必须为所有视图设置它...
<EditText android:id="@+id/edit_message"
android:layout_weight="3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message" />
<Button android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/button_send" />
答案 1 :(得分:1)
罪魁祸首就是你editText
:
android:layout_width="0dp"
替换为:
android:layout_width="107dip"