包括不工作

Ich*_*aum 5 android include android-layout

我尝试将其设置为我的活动布局:

<?xml version="1.0" encoding="utf-8"?>
<include layout="@layout/map_activity_base" />
Run Code Online (Sandbox Code Playgroud)

如果我使用@layout/map_activity_base而不是包含它,它会起作用。我不这样做的原因是因为您不能在大屏幕布局中包含小屏幕布局的内容,但我需要@layout/map_activity_base不同布局中的内容。

我得到的错误是

E/AndroidRuntime(11383): FATAL EXCEPTION: main
E/AndroidRuntime(11383): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.l_one.app.achileo/de.l_one.app.achileo.Main}: android.view.InflateException: Binary XML file line #2: Error inflating class include  
[...]  
E/AndroidRuntime(11383): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class include  
[...]  
E/AndroidRuntime(11383): Caused by: java.lang.ClassNotFoundException: android.view.include in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/data/app/de.l_one.app.achileo-1.apk]
Run Code Online (Sandbox Code Playgroud)

所以似乎 android 认为<include />应该是 aView但只有当我在<include />没有任何环境的情况下使用时才会发生View

那么是否可以在<include />没有任何环境的情况下使用View,如果不是,实现我想要的最佳方法是什么?

顺便说一句:我不知道这是否重要,但这是图书馆项目的内容。

编辑:map_activity_base.xml

<?xml version="1.0" encoding="UTF-8" ?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapContainer"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView android:id="@+id/listHeader"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:gravity="center"
    android:text="@string/listHeader"
    android:padding="5dp" />

<View android:id="@+id/divider"
    android:layout_width="100dp"
    android:layout_height="1dp"
    android:background="#333"
    android:layout_below="@id/listHeader" />

<de.l_one.app.map.base.POIListView android:id="@+id/poiList"
    android:layout_width="100sp"
    android:layout_height="match_parent"
    android:divider="#cccccc"
    android:dividerHeight="1dp"
    android:layout_alignParentLeft="true"
    android:layout_below="@id/divider"
    android:listSelector="@android:color/transparent" />

<com.google.android.maps.MapView
    android:id="@+id/mapview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_toRightOf="@id/poiList"
    android:clickable="true"
    android:apiKey="@string/googleAPIKey" />

<TextView android:id="@+id/cmtryNameTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:padding="5dp"
    android:background="@drawable/cmtry_txt_view_back" />

<TextView android:id="@+id/navigate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@id/cmtryNameTextView"
    android:padding="5dp"
    android:background="@drawable/cmtry_txt_view_back"
    android:visibility="gone"
    android:text="@string/navigate" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

swi*_*ood 3

我相信您至少需要将“include”放入根视图中。类似于以下内容:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
...

   <include layout="@layout/titlebar"/>

...
Run Code Online (Sandbox Code Playgroud)

/>