无法在屏幕上看到视图

时间:2011-08-19 09:21:25

标签: android layout

我的登录屏幕布局如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/login_layout" 
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:background="#ffffff">

<include 
android:id="@+id/headerlayout" 
layout="@layout/headerview"
android:layout_height="50dip" 
android:layout_width="fill_parent" />

<ImageView 
android:id="@+id/imgIcon" 
android:src="@drawable/icon"
android:layout_width="wrap_content" 
android:layout_height="wrap_content" />

<TextView
android:id="@+id/txtUserName"
android:layout_width="fill_parent"
android:layout_height="80dip"
android:lines="1"
android:textColor="#000000"
android:textStyle="bold"
android:textSize="16dip"
android:text="User Name"/>
</LinearLayout>  

但是,我无法看到ImageViewTextView。只有 headerview 可见,下方有白色布局。为什么会这样?

谢谢,

2 个答案:

答案 0 :(得分:1)

只需添加

android:orientation="vertical"

<LinearLayout>标记中。

修改 默认情况下,方向设置为“水平”意味着每个组件都将水平添加,因为您对标题使用"fill_parent",因此它覆盖了所有位置(宽度),并且没有空间供其他组件显示。因此,当您添加垂直时,所有组件都垂直放置。因此,有足够的空间可以让组件自行布局。More detail here

答案 1 :(得分:0)

Bydefault LinearLayout水平对齐所有孩子的单向(如果你没有指定android:orientation)。

所以在这种情况下,它是水平添加视图。您的标题部分占据了屏幕的整个宽度(因为您已在android:layout_width="fill_parent"标记中指定了include,并且TextViewImageView没有剩余空间。

您只需在LinearLayout中添加方向标记,并将其值设置为垂直。 即android:orientation="vertical"

LinearLayout from Android Docs

LinearLayout在一个方向上对齐所有子项 - 垂直或水平,具体取决于您定义方向属性的方式。所有的孩子一个接一个地堆叠,所以垂直列表每行只有一个孩子,无论它们有多宽,水平列表只有一行高(最高的孩子的高度加上填充)。 LinearLayout尊重子项与每个孩子的重力(右,中或左对齐)之间的边距。