【发布时间】:2020-05-28 00:21:31
【问题描述】:
获取不兼容类型的 FragmentManager 的持续错误。需要支持库才能工作,但无法弄清楚。 Android Studio 说它需要支持导入,它在那里,但找到了 androidx 导入。
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import androidx.appcompat.app.AppCompatActivity;
public class CrimeActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_crime);
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragment_container);
if(fragment == null)
{
fragment = new CrimeFragment();
fm.beginTransaction()
.add(R.id.fragment_container, fragment)
.commit();
}
}
}```
【问题讨论】:
-
如果您使用的是 androidx,所有内容都应该来自
androidx,而不是android.support。 “Android Studio 说它需要支持导入”到底是什么意思?您收到的错误消息是什么? -
“需要不兼容的类型:android.support.v4.app.FragmentManager 找到:androidx.fragment.app.FragmentManager”
-
是的,将这两个
android.support导入更改为androidx。如果您只是删除它们,您的 IDE 应该会提示您选择正确的。 -
是的,事实证明它有效。显然支持库现在毫无意义。
-
它们基本上只是在版本 28 时变成了 androidx。不过,考虑到自切换以来发生的所有不可避免的升级和变化,大多数东西的工作原理都差不多。
标签: java android android-studio android-fragments fragmentmanager