2015-02-12 50 views
0

我有一個列表項目佈局,並且此佈局用於StickyListHeaderListView,並在圖像後面包含垂直分隔符。問題在於儘管在預覽屏幕上繪製了視圖分隔符,但從未在真實設備上繪製視圖分隔符。XML垂直線不在真實設備上繪製

下面是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

我試着把垂直線放在佈局的不同部分,但仍然沒有顯示在真實的設備上。 任何幫助,將不勝感激。

回答

0

如何添加一個新項目到你的listView?

是否每個項目都有整個xml文件的佈局?

那麼一行將使用整個layout.xml文件?

編輯:

我猜,因爲你必須在你與線路相對佈局2次,圖像推離屏幕的行。 我花了一段時間找到一些參考資料,但here

RelativeLayout以相同的方式工作,相對佈局中的最後一幅圖像獲勝。

所以你必須找到一種方法,你可以在圖像的頂部繪製圖像。或者你可以繪製一個簡單的線條作爲drawable,並將其設置爲包含圖像的relativeLayout的背景

+0

我使用 添加新項目mAdapter.addAll(events); mAdapter.notifyDataSetChanged(); - 每一個項目是對整個XML文件 的佈局 - 是 – 2015-02-12 00:42:33

+0

你在哪裏設置用於列表視圖的每一行的佈局? – 2015-02-12 00:44:22

+0

在適配器的getView方法中 – 2015-02-12 00:46:01

0

我將RelativeLayout中的根改爲水平LinearLayout,並且在做了必要的佈局更改之後,問題就解決了!

我讀過somewhere是RelativeLayout的,其父母爲一個ListView時match_parent高度分配有問題。