2010-09-07 80 views
1

我想在垂直LinearLayout中的條目之間添加一個分隔線來模擬ListView的外觀。 (我不能只用一個ListView在這種特殊情況。)Android的充氣視圖爲空

這是我在list_divider.xml:

<?xml version="1.0" encoding="utf-8"?> 
<View 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="@color/panel_border" 
    android:layout_width="fill_parent" 
    android:layout_height="@dimen/border_width" 
/> 

下面是它試圖除了每一個元素之前膨脹該分頻器的代碼列表中的第一個:

LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
for (int i = 0; i < categories.size(); i++) { 

    if (i > 0) 
     items.addView(vi.inflate(R.layout.list_divider, null));  
     // these dividers never appear 

    // but these main entries always appear just fine  
    items.addView(ad.getView(i, null, null)); 
} 

主要列表項目顯示正確,但分隔符是不可見的。

的分隔出現,如果我改變他們是一個TextView,而不是一個簡單的觀點:

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="@color/panel_border" 
    android:layout_width="fill_parent" 
    android:layout_height="@dimen/border_width" 
    android:text="---" 
/> 

我已經嘗試了寬度和高度設置明確的像素值,以及使用BORDER_WIDTH定義和fill_parent選項。沒什麼區別。

有沒有什麼特別的關於一個普通的舊視圖,使它不出現?

回答

0

我最終通過將我的divider View包裝在FrameLayout中來解決它。看起來沒有內容的單個空視圖不起作用。

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

    <View 
    android:background="@color/panel_border" 
    android:layout_width="fill_parent" 
    android:layout_height="@dimen/border_width" /> 

</FrameLayout>