考虑此LinearLayout包含..
一个带有两个子视图的嵌套线性布局
一个imageView
一个Textview
一个textView
为什么我可以使用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>
答案 0 :(得分: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上工作的原因是因为你有一个权重属性。将0dp更改为wrap_content
。