Android充气视图为空

时间:2010-09-07 21:40:57

标签: android view inflate divider

我正在尝试在垂直LinearLayout中的条目之间添加分隔符,以模拟ListView的外观。 (在这种特殊情况下,我不能只使用ListView。)

这就是我在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而不是普通视图,则会出现分隔符 do

<?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选项。没有区别。

普通旧视图是否有特殊之处,使其不显示?

1 个答案:

答案 0 :(得分:0)

我最终通过将我的divider视图包装在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>