XML垂直线未在真实设备上绘制

时间:2015-02-12 00:28:31

标签: android android-layout

我有一个列表项布局,此布局用于StickyListHeaderListView并包含图像后面的垂直分隔符。问题是视图分隔符永远不会在真实设备上绘制,尽管在预览屏幕上绘制。

这是xml布局代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:minHeight="80dp"
       android:paddingLeft="@dimen/padding_medium"
       android:paddingRight="@dimen/padding_medium"
       tools:ignore="MissingPrefix">

<TextView
    android:id="@+id/textview_date"
    fontPath="@string/font_semi_bold"
    android:layout_width="wrap_content"
    android:maxWidth="60dp"
    android:layout_height="match_parent"
    android:layout_centerVertical="true"
    android:gravity="center_vertical|right"
    android:textAppearance="@android:style/TextAppearance.Holo.Medium"
    android:textColor="#999999"
    tools:text="21\nFeb" />

<RelativeLayout
    android:id="@+id/container"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_toRightOf="@+id/textview_date"
    android:minWidth="50dp"
    android:paddingLeft="@dimen/padding_extra_small"
    android:paddingRight="@dimen/padding_extra_small">

    <View
        android:layout_width="1px"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:background="#999999" />
    <ImageView
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_alignParentTop="true"
        android:layout_marginTop="@dimen/margin_small"
        android:src="@drawable/test_event_cat_1" />
</RelativeLayout>

<TextView
    android:id="@+id/textview_event_name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/container"
    android:layout_marginTop="@dimen/margin_small"
    android:textColor="#999999"
    fontPath="@string/font_medium"
    tools:text="ACS Nights’ Soccer Finale"
    android:textAppearance="@android:style/TextAppearance.Holo.Medium" />
<TextView
    android:id="@+id/textview_interval"
    android:layout_width="match_parent"
    android:textAppearance="@android:style/TextAppearance.Holo.Small"
    android:layout_alignLeft="@+id/textview_event_name"
    android:layout_below="@id/textview_event_name"
    android:layout_marginTop="@dimen/margin_small"
    android:textColor="#999999"
    tools:text="4:00 PM - 6:00 PM"
    android:layout_height="wrap_content" />
 </RelativeLayout>

此代码在Android Studio的预览窗口中生成正确的布局

Android Studio Preview Output

但设备上的输出不包含任何垂直线,如预览

Device output

我尝试将垂直线放在布局的不同部分,但仍未在真实设备上显示。 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

如何在listView中添加新项?

每个项目是否都具有整个xml文件的布局?

那么一行会使用整个layout.xml文件吗?

修改

我猜测,因为你的相对布局中有2个视图,所以图像将线条推离屏幕。 我花了一些时间找到一些参考资料,但here

  

RelativeLayout以相同的方式工作,相对布局中的最后一个图像获胜。

所以你必须找到一种方法,你可以在线上绘制图像。或者您可以绘制一个简单的线作为drawable并将其设置为包含图像的relativeLayout的背景

答案 1 :(得分:0)

我将根从RelativeLayout更改为水平LinearLayout,在进行必要的布局更改后,问题现在解决了!

我已经读过somewhere,其父级是ListView的RelativeLayout在分配match_parent高度时遇到问题。