androidstudio在fragmentmanager中添加片段

sqserrrh  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(264)

我刚刚进入android开发,我遵循标准指南在android开发者官方文档网站上创建了一个片段。但是,当我尝试将我的简单片段添加到片段容器时,add()方法声明传递给我的片段类的参数不正确。
这是我的主要活动的oncreate()方法:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BottomNavigationView navView = findViewById(R.id.nav_view);
        navView.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .setReorderingAllowed(true)
                    .add(R.id.fragment_container_view, ChatFragment.class, null)
                    .commit();
        }
    }

这是我的片段类:

public class ChatFragment extends Fragment {
    public ChatFragment() {
        super(R.layout.chat_layout);
    }
}

我得到的编译器错误是“required type:fragment,provided:class”,尽管我只是从官方文档网站复制了代码。也许他们写这篇文章后有些变化,但我至今找不到解决办法。
一般来说,我想做的是,我有我的底部导航栏,根据我点击的项目,应该显示另一个片段,我的代码中的上部片段是启动应用程序时的“标准”视图。

nnvyjq4y

nnvyjq4y1#

试试下面的东西

getSupportFragmentManager().beginTransaction().add(R.id.fragment_container_view,new ChatFragment(),"ChatFragment").commit();

在chat fragment中,而不是构造函数中,尝试在oncreateview中膨胀

@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    return inflater.inflate(R.layout.chat_layout, container, false);
}
wlp8pajw

wlp8pajw2#

用途:

getSupportFragmentManager().beginTransaction()
                    .setReorderingAllowed(true)
                    .add(R.id.fragment_container_view, new ChatFragment(), null)
                    .commit();

相关问题