来自另一个模块的校准片段

时间:2018-07-06 05:40:37

标签: android android-fragments module

我有一个名为editormodule的模块,其中有一个片段和活动列表。假设它们分别命名为(fragment.MapFragment)和(activity.EditActivity)。这是我的EditActivity

 <FrameLayout
        android:id="@+id/mainview"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <fragment
            android:id="@+id/map"
            android:name="fragment.MapFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            tools:layout="@layout/fragment_map"/>

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

        <include
            layout="@layout/bottombar"/>
    </FrameLayout>

当我从我的应用(com.mobile.app.Main2Activity)启动editActivity时,它说

com.mobile.app.Main2Activity.fragment.MapFragment不存在。实际上,它位于模块中,而不是应用程序中。

我已经做过的事情: -我已将该模块添加到应用程序依赖项中 -我已将EditActivity添加到manifist.xml文件中 -我的应用仅包含一项活动,没有任何可能造成冲突的额外片段。

1 个答案:

答案 0 :(得分:1)

在XML中,您需要类而不是名称。根据您的XML,尝试用以下内容替换片段部分:

    <fragment
        android:id="@+id/map"
        class="com.mobile.app.fragment.MapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"/>

编辑: class属性必须包含片段类的类路径(包括整个包)。

Edit2 :在onCreateView布局中调用如下代码是一种很好的样式(在Kolin中:

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
    val view = inflater.inflate(R.layout.fragment_your_layout, container, false)
    return view
}