如何在Android中将自定义片段充气到XML文件?

问题描述 投票:0回答:1

我有这个片段:

public class SettingsFragment extends PreferenceFragmentCompat {
    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        setPreferencesFromResource(R.xml.settings, rootKey);
    }
}

而且我想将此片段添加到.XML文件。这是我尝试过的:

<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <androidx.appcompat.widget.Toolbar
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:id="@+id/toolbar"/>

        <com.example.myapp.SettingsFragment
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/toolbar"/>
    </RelativeLayout>
</layout>

我可以确认这是文件的正确位置:

com.example.myapp.SettingsFragment

但是,由于此错误,它没有被夸大:

android.view.InflateException:com.example.myapp:layout / fragment_settings中的二进制XML文件第14行:类不是View com.example.myapp.SettingsFragment

指向:

<com.example.myapp.SettingsFragment

如何将此自定义片段添加到我的XML文件中?

XML文件是片段而不是活动的布局。

android android-fragments android-inflate
1个回答
0
投票

尝试一下:

<fragment
        android:name="com.example.myapp.SettingsFragment"
        android:id="@+id/myfragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/toolbar"/>

请注意,您需要Fragment的ID。

请参阅official guide了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.