替换已弃用的 BrowseFragment AndroidTV
Replacement of deprecated BrowseFragment AndroidTV
此 class 已在 API 级别 27.1.0 中弃用。
使用 BrowseSupportFragment
但是当我替换这个时
public class MainFragment extends BrowseFragment
到
public class MainFragment extends BrowseSupportFragment
发生以下异常
Caused by: android.app.Fragment$InstantiationException: Trying to instantiate a class MainFragment that is not a Fragment
我的XML密码是
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.example.tvapplocation1.MainFragment"
android:layout_width="match_parent" android:layout_height="match_parent">
</fragment>
简短回答:如果您的 Activity 不是从 FragmentActivity 扩展而来,就会发生这种情况。
更长的答案:片段 class 有两个版本,一个内置于 OS 中,另一个是 support/Android X 库 () 的一部分。您应该始终使用 support/Android X 版本,因为它提供了跨 Android OS 版本的兼容性和一致的行为。各种 *SupportFragment classes(如 BrowseSupportFragment)从 support/Android X 版本的 Fragment 扩展而来,这需要您使用 support/Android X 库中的 FragmentActivity。
此 class 已在 API 级别 27.1.0 中弃用。 使用 BrowseSupportFragment
但是当我替换这个时
public class MainFragment extends BrowseFragment
到
public class MainFragment extends BrowseSupportFragment
发生以下异常
Caused by: android.app.Fragment$InstantiationException: Trying to instantiate a class MainFragment that is not a Fragment
我的XML密码是
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.example.tvapplocation1.MainFragment"
android:layout_width="match_parent" android:layout_height="match_parent">
</fragment>
简短回答:如果您的 Activity 不是从 FragmentActivity 扩展而来,就会发生这种情况。
更长的答案:片段 class 有两个版本,一个内置于 OS 中,另一个是 support/Android X 库 () 的一部分。您应该始终使用 support/Android X 版本,因为它提供了跨 Android OS 版本的兼容性和一致的行为。各种 *SupportFragment classes(如 BrowseSupportFragment)从 support/Android X 版本的 Fragment 扩展而来,这需要您使用 support/Android X 库中的 FragmentActivity。