0

考虑到这个 LinearLayout 包含..

  • 一个带有两个子视图的嵌套线性布局

    • 一个图像视图

    • 一个文本视图

  • 一个文本视图

  • 一键式

为什么我可以使用 findViewById 和 setText 在外部 TextView 上成功显示文本内容,而内部 Textview(嵌套线性视图内部)显示为空白?

这是 onCreate 的代码:

LayoutInflater inflater = LayoutInflater.from(Item.this);
LinearLayout itemLayout = (LinearLayout)inflater.inflate(R.layout.activity_item, null);            
Button proformaButton = (Button)itemLayout.getChildAt(2);

roformaButton.setOnClickListener(this);


setContentView(itemLayout);

TextView titleTitla = (TextView)findViewById(R.id.item_title);
TextView itemBody = (TextView)findViewById(R.id.item_body); 

titleTitla.setText("Tomatoes");
itemBody.setText("Potatoes");

在调试时,我可以看到视图是由 Id 找到的,并且我还可以看到 setText 是否可以正常工作(TextView 的 mText 字段),但活动没有显示 item_title 的任何内容。

我在问如何解决这个问题,但如果这不是一件微不足道的事情,我们将不胜感激。

如果有帮助,这里是xml:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:orientation="horizontal"
        android:layout_weight="1">

        <ImageView
            android:id="@+id/item_picture"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:contentDescription="@string/image_item">
        </ImageView>

        <TextView 
            android:id="@+id/item_title"
            android:layout_width="0dip"
            android:layout_height="fill_parent">
        </TextView>

    </LinearLayout>

    <TextView 
        android:id="@+id/item_body"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="2">
    </TextView>

    <Button
         android:id="@+id/btnOrderItem"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:text="@string/order_button"
    />

</LinearLayout>
4

1 回答 1

4
    <TextView 
        android:id="@+id/item_body"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="2">
    </TextView>

这是layout_height="0dp". 它适用于其他 LinearLayout 的原因是因为您有一个 weight 属性。将 0dp 更改为wrap_content.

于 2012-12-05T15:38:24.763 回答