是否可以将ViewGroup用于Empty ListView?

时间:2010-07-30 19:37:42

标签: android listview layout

我的ListActivity布局如下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
  <ListView android:id="@android:id/list" android:cacheColorHint="@color/transparent" style="@style/FullWidth.NoteList" />
  <LinearLayout android:id="@android:id/empty" style="@style/FillParent">
    <ImageView style="@style/NoNotesImage" />
    <TextView android:text="@string/no_notes" style="@style/Shadowed.NoNotesText" />
    <Button android:id="@+id/note_add" android:text="@string/note_add" style="@style/Shadowed.Button.Blue"/>
  </LinearLayout>
</LinearLayout>

这里的相关风格。

<?xml version="1.0" encoding="utf-8"?>
<style name="Shadowed">
  <item name="android:shadowDx">1.1</item>
  <item name="android:shadowDy">1.1</item>
  <item name="android:shadowRadius">1.1</item>
</style>
<style name="NoNotesImage">
  <item name="android:layout_width">fill_parent</item>
  <item name="android:layout_height">wrap_content</item>
  <item name="android:gravity">center</item>
  <item name="android:layout_marginTop">80.5dip</item>
  <item name="android:layout_marginLeft">20dip</item>
  <item name="android:src">@drawable/bg_no_notes</item>
</style>
<style name="Shadowed.NoNotesText">
  <item name="android:layout_width">fill_parent</item>
  <item name="android:layout_height">wrap_content</item>
  <item name="android:gravity">center</item>
  <item name="android:textSize">10sp</item>
  <item name="android:textColor">@color/no_notes_text</item>
  <item name="android:shadowColor">@color/no_notes_shadow</item>
</style>
<style name="FillParent">
  <item name="android:layout_width">fill_parent</item>
  <item name="android:layout_height">fill_parent</item>
</style>

但是,我的空列表视图仅包含嵌套ImageView内首先列出的LinearLayout

这似乎是一件合理的事情,但我还没有完全理解Android的布局规则。

1 个答案:

答案 0 :(得分:1)

嗯,我会在黑暗中拍摄。 LinearLayout应该可以工作,但我猜你是不小心将视图从屏幕上移开了。我敢打赌,LinearLayout的android:orientation意外被设置为“水平”而ImageView的layout_width是“fill_parent”;这样做会阻止TextView和Button。您可能只需要将LinearLayout的android:orientation更改为“vertical”,它将按预期工作。