“必须提供高度属性”错误

时间:2011-10-06 16:56:30

标签: android android-layout

我正在尝试解决Android错误“您必须提供layout_height属性。”在DDMS中,错误消息为:

10-06 12:45:12.431: WARN/WindowManager(62): HistoryRecord{406287f8 com.learning.android.yamba/.TimelineActivity} failed creating starting window
10-06 12:45:12.431: WARN/WindowManager(62): java.lang.RuntimeException: Binary XML file line #25: You must supply a layout_height attribute.
10-06 12:45:12.431: WARN/WindowManager(62):     at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:491)
10-06 12:45:12.431: WARN/WindowManager(62):     at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:3599)
10-06 12:45:12.431: WARN/WindowManager(62):     at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:3678)

我的TimelineActivity xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" style="@style/activity">
    <TextView android:id="@+id/textView1" android:layout_width="wrap_content"
       android:layout_height="wrap_content" style="@style/title"
       android:text="@string/titleTimeline" android:layout_gravity="center">
    </TextView>
    <ListView style="@style/editbox" android:id="@+id/listStatuses"
    android:cacheColorHint="#00000000">
    </ListView>
</LinearLayout>

引用的样式如下:

<style name="activity">
    <item name="android:orientation">vertical</item>
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">fill_parent</item>
    <item name="android:background">@drawable/background</item>
 </style>

<style name="title">
    <item name="android:textSize">25dp</item>
    <item name="android:gravity">center</item>
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
</style>

<style name="editbox">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">fill_parent</item>
    <item name="android:layout_weight">1</item>
    <item name="android:background">#609f</item>
    <item name="android:padding">10dp</item>
    <item name="android:layout_margin">15dp</item>
    <item name="android:textSize">15dp</item>
 </style>

虽然我已将列表框背景设置为透明,但通过列表框看不到窗口背景。不确定这两者是否相关。

2 个答案:

答案 0 :(得分:1)

请点击此处查看解决方案:

https://stackoverflow.com/a/5728794

问题可能是因为您在AndroidManifest.xml文件中使用了自定义主题。这与你的布局无关。

答案 1 :(得分:0)

我知道这已经有几个月了,但我想我有一个答案。

您可以在xml:

样式中创建尺寸值
<dimen name="layoutheight_title">wrap_content</dimen> 
<dimen name="layoutwidth_title">fill_parent</dimen> 

然后根据需要引用xml布局中的维度值。

android:layout_height="@dimen/layoutheight_title" 
android:layout_width="@dimen/layoutwidth_title"