我尝试统一我的布局,所以我想重用一些UI元素。如果我尝试在 main.xml 中包含这些元素,则应用程序会崩溃
02-15 13:07:02.470:E / AndroidRuntime(16588):引起:java.lang.RuntimeException:二进制XML文件行#2:您必须提供layout_width属性。
我的XML看起来像
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLL"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<include layout="@layout/include_topbar"/>
</LinearLayout>
<!-- include_topbar -->
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout style="@style/topbar_linearlayout">
<include layout="@layout/include_icon"/>
<include layout="@layout/include_topbar_title"/>
</LinearLayout>
</merge>
<!-- include_icon -->
<merge xmlns:android="schemas.android.com/apk/res/android">
<View
android:background="@drawable/icon"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginRight="5dp"
/></merge>
<!-- include_topbar_title -->
<merge xmlns:android="schemas.android.com/apk/res/android">
<TextView
android:gravity="center"
android:text="@string/bla"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
/></merge>
<!-- topbar_linearlayout -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="topbar_linearlayout">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">58dp</item>
<item name="android:padding">5dp</item>
<item name="android:orientation">horizontal</item>
<item name="android:background">@drawable/gradient_background</item>
</style>
</resources>
编辑:不要使用<merge>
,那么它会起作用......
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/topbar_linearlayout">
<include layout="@layout/include_icon"/>
<include layout="@layout/include_topbar_title"/>
</LinearLayout>
<!-- include_icon -->
<View xmlns:android="schemas.android.com/apk/res/android"
android:background="@drawable/icon"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginRight="5dp"
/>
答案 0 :(得分:0)
<LinearLayout style="@style/topbar_linearlayout">
没有需要指定的width和height属性。
答案 1 :(得分:0)
您在Exception中提供了答案...“您必须提供layout_width属性。”
因此,为include语句设置layout_width和layout_height。