包含xml layout_width / height未找到

时间:2014-01-30 11:00:41

标签: android android-xml

我有一个标准的页眉布局,我想要包含在我的所有活动布局中。这很简单:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/medium_margin"
android:background="@drawable/header_bg" >

<Button
    android:id="@+id/new_client_button"
    android:layout_width="@dimen/client_btn_width"
    android:layout_height="@dimen/client_btn_height"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:background="@drawable/search_btn_bg"
    android:text="@string/find_client" />

<ImageView
    android:id="@+id/header_logo"
    android:layout_width="@dimen/header_logo_width"
    android:layout_height="@dimen/header_logo_height"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:contentDescription="@string/OK"
    android:src="@drawable/negev_logo" />

</RelativeLayout>

我把它包含在几个活动中,一切都很好。但是,在下面的声明中,我收到来自Eclipse的投诉,说'“client_header”没有设置所需的layout_width属性:'

这是声明,我在这里看不到任何其他成功布局中不存在的内容:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/back"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
tools:context=".ClientActivity" >

<include
    android:id="@+id/client_header"
    layout="@layout/header_layout" />
... etc

当我尝试给布局充气时,我也遇到了同样的错误。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />

<include
    android:id="@+id/client_header"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignRight="@+id/textView1"
    android:layout_below="@+id/textView1"
    android:layout_marginRight="25dp"
    android:layout_marginTop="94dp"
    layout="@layout/layout_name" />
</RelativeLayout>

这种布局对我有用。

答案 1 :(得分:0)

从父布局中删除padding。因为它是一个基本视图如果你需要填充,可以使用Margin作为子视图,或者使用其中的其他包装layout来保存textView和ImageView并设置填充。

答案 2 :(得分:0)

事实证明,这是文件中进一步向下的格式错误的副作用。该布局未被标记,但不知何故它影响了它上面的XML代码。这个故事的寓意:不要认为这个bug就在Eclipse的lint认为的地方。就像任何其他错误一样,简化直到您将问题隔离开来。