我有一个标准的页眉布局,我想要包含在我的所有活动布局中。这很简单:
<?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
当我尝试给布局充气时,我也遇到了同样的错误。有什么想法吗?
答案 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认为的地方。就像任何其他错误一样,简化直到您将问题隔离开来。