1

我正在编译并运行到 Nexus 7 设备而不是模拟器,因为模拟器在我的 macbook 上运行非常缓慢。

这是我的代码:

<?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="fill_parent"
    android:orientation="vertical" >

    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="@string/hello" />

   <Button 
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="@string/button_send"/>

</LinearLayout>

我正在阅读一本书,但我不知道我做错了什么。我正在使用 ADT eclipse ide。有任何想法吗?文本在那里,但按钮没有显示,当我在图形视图中添加一个按钮时,它在注入代码时似乎工作。

4

2 回答 2

2

LinearLayout 在使用 fill_parent 时,一一测量其每个子级需要多少大小。因此,在您的示例中,它看到第一个孩子想要拥有它给它的所有可用高度(fill_parent)。

如果你不关心间距

更改android:layout_height="fill_parent"android:layout_height="wrap_content"

假设您希望按钮位于底部

您可以使用 layout_weight 解决此问题。告诉两个视图只使用它们需要的空间(即使用 wrap_content)。接下来将第一个视图设置为使用 layout_weight=1,以便在决定哪个视图获得剩余空间时,第一个视图优先。

<?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="fill_parent"
    android:orientation="vertical" >

    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Hello" />

   <Button 
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_weight="0"
       android:text="Send"/>

</LinearLayout>

这是结果的样子,这是我假设你想要的:

在此处输入图像描述

于 2013-02-02T19:34:35.630 回答
1

您的 TextView 填充父级。所以它没有空间留给一个按钮。改变:

android:layout_height="fill_parent"

到:

android:layout_height="wrap_content"
于 2013-02-02T19:29:46.133 回答