Java Android:为什么在编辑器中查看背景而不是在应用程序中?

Java Android:为什么在编辑器中查看背景而不是在应用程序中?,java,android,view,Java,Android,View,我有一个Android项目,其中一个xml文件表示适配器的一行 这一排在左侧有一个彩色视图 由于某些原因,视图在Eclipse的图形编辑器中正确呈现,但在设备上运行时却不正确 视图以正确的大小绘制,但没有编辑器那样的蓝色背景 我注意到,当我转储UI层次结构时,视图节点不在层次结构中 如果我在适配器中绑定视图时中断,我可以看到mMeasuredHeight是正确的,但mMeasuredWidth是0。我觉得我错过了一些基本的东西 附件是屏幕截图和xml文件 <?xml version="

我有一个Android项目,其中一个xml文件表示适配器的一行

这一排在左侧有一个彩色视图

由于某些原因,视图在Eclipse的图形编辑器中正确呈现,但在设备上运行时却不正确

视图以正确的大小绘制,但没有编辑器那样的蓝色背景


我注意到,当我转储UI层次结构时,视图节点不在层次结构中

如果我在适配器中绑定视图时中断,我可以看到mMeasuredHeight是正确的,但mMeasuredWidth是0。我觉得我错过了一些基本的东西


附件是屏幕截图和xml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <View
        android:id="@+id/view_header_accent"
        android:layout_width="50dp"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="@color/blue_primary" />

    <TextView
        android:id="@+id/txt_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="@dimen/grid_small"
        android:layout_marginTop="@dimen/grid_small"
        android:layout_toLeftOf="@+id/img_cancel"
        android:layout_toRightOf="@+id/view_header_accent"
        android:text="Brad"
        android:textSize="18sp" />

    <TextView
        android:id="@+id/txt_subtitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/txt_title"
        android:layout_alignRight="@+id/txt_title"
        android:layout_below="@+id/txt_title"
        android:paddingBottom="@dimen/grid_small"
        android:text="Active"
        android:textColor="#80000000"
        android:textSize="14sp" />

    <ImageView
        android:id="@+id/img_cancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="@dimen/grid_small"
        android:src="@drawable/ic_cancel" />

</RelativeLayout>

Eclipse中图形编辑器的屏幕截图:

来自设备的屏幕截图:

找到了问题

问题是因为顶级视图是一个相对视图,其高度为wrap_内容

再加上布局高度为匹配父视图的子视图,彩色子视图的测量高度最终计算为0

解决方法是为行设置固定高度,或者可以选择指定彩色视图的顶部和底部对齐方式,以匹配其他子视图

最终视图如下所示:

<View
    android:id="@+id/view_header_accent"
    android:layout_width="8dp"
    android:layout_height="match_parent"
    android:layout_alignBottom="@+id/txt_subtitle"
    android:layout_alignParentLeft="true"
    android:layout_alignTop="@+id/txt_title"
    android:background="@color/blue_primary" />