布局定义。 “你必须提供layout_width属性。”

时间:2011-12-06 23:55:24

标签: android android-layout

我正在开发一个小的Android应用程序,我遇到布局问题,我一直试图在我的xml中找到错误,但我找不到它......

我得到的错误是“你必须提供layout_width属性”,但是我做了它仍然无效...

这是我的XML文件:

<?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="wrap_content"
    android:orientation="vertical" >

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="100" >

    <TextView android:id="@+id/nombreEvento"
        android:layout_height="fill_parent"
        android:layout_weight="70"
    />

    <TextView android:id="@+id/moneda"
        android:layout_height="fill_parent"
        android:layout_weight="10"
    />

    <TextView android:id="@+id/totalEvento"
        android:layout_height="wrap_content"
        android:layout_weight="20"
    />
    </LinearLayout>

<TextView android:id="@+id/fecha"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
/>

</LinearLayout>

8 个答案:

答案 0 :(得分:18)

不是所有的TextView都有layout_height和 layout_weight 而不是layout_height和 layout_width (可能还有layout_weight)。试试这个:

<?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="wrap_content"
    android:orientation="vertical" >

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="100" >

    <TextView android:id="@+id/nombreEvento"
        android:layout_height="fill_parent"
        android:layout_width="0dp"
        android:layout_weight="70"
    />

    <TextView android:id="@+id/moneda"
        android:layout_height="fill_parent"
        android:layout_width="0dp"
        android:layout_weight="10"
    />

    <TextView android:id="@+id/totalEvento"
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="20"
    />
    </LinearLayout>

<TextView android:id="@+id/fecha"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
/>

</LinearLayout>

答案 1 :(得分:3)

尝试将android:layout_width="wrap_content"添加到没有它的TextView中。

答案 2 :(得分:3)

在我的情况下,我忘了将layout_width属性放到TableLayout中。

由于TableRay是TableLayout的子节点并不需要layout_width所以我在这个问题中运行了,所以有点令人困惑...

答案 3 :(得分:3)

我认为你没有在宽度大小之后放置dp。为什么你的代码可能无效。 前android:layout_weight="20" 使用此android:layout_weight="20dp"

答案 4 :(得分:2)

您需要指定视图的宽度和高度。这是必须的。对于textview,您只需设置高度和重量。添加

android:layout_width="0dip"

答案 5 :(得分:1)

In my case, android:layout_width="@dimen/abc_action_bar_progress_bar_size" was set but @dimen/abc_action_bar_progress_bar_size "was private". So instead of complaining about not having access to it, it apparently silently removed it, to complain about it missing later.

答案 6 :(得分:0)

使用属性时也会遇到相同的错误,但是忘记将属性映射到样式

答案 7 :(得分:0)

就我而言,它在我重建项目和使缓存无效并重新启动我的 android Studio IDE 时起作用