我有这个片段:
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文件是片段而不是活动的布局。
尝试一下:
<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了解更多信息。