Java 有没有解决此设置的ViewPager错误的方法?

Java 有没有解决此设置的ViewPager错误的方法?,java,android,android-studio,android-viewpager,android-tablayout,Java,Android,Android Studio,Android Viewpager,Android Tablayout,我从昨晚开始就一直在解决这个问题,我使用了viewpager2,因为androidstudio中原来的viewpager不见了。我不知道是什么导致了这个错误,你们能帮我吗 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fireba

我从昨晚开始就一直在解决这个问题,我使用了viewpager2,因为androidstudio中原来的viewpager不见了。我不知道是什么导致了这个错误,你们能帮我吗

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
        myRef = FirebaseDatabase.getInstance().getReference("Users").child(firebaseUser.getUid());

        myRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                Users users = snapshot.getValue(Users.class);

            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {

            }
        });
        //TabLayout and viewpager
        TableLayout tabLayout = findViewById(R.id.tabLayout);
        ViewPager viewPager = findViewById(R.id.view_pager);

        ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());

        viewPagerAdapter.addFragment(new ChatFragment(), "chats" ); // this line can crash
        viewPagerAdapter.addFragment(new UsersFragment(), "Users" ); // this line can crash

        viewPager.setAdapter(viewPagerAdapter);

        tabLayout.setupWithViewPager(viewPager);

    }```
发件人:

最后,必须更新附加TabLayout对象的代码 指向ViewPager对象。而TabLayout使用自己的 setupWithViewPager()方法要与ViewPager集成,需要 TabLayoutMediator实例与ViewPager2集成

要使用ViewPager2,您不能再使用
setupWithViewPager
方法,必须改用TabLayoutMediator

// TODO: Comment-out or remove this line
// tabLayout.setupWithViewPager(viewPager);

new TabLayoutMediator(tabLayout, viewPager, new TabLayoutMediator.TabConfigurationStrategy() {
    @Override
    public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
        String tabTitle = "";
        if (position == 0) {
            tabTitle = "chats";
        } else if (position == 1) {
            tabTitle = "Users";
        }
        tab.setText(tabTitle);
    }
}).attach();
另外,您应该永远不要将实际片段实例传递给FragmentPagerAdapter。您应该始终在
getItem()
(对于FragmentPagerAdapter/FragmentStatePagerAdapter)和
createFragment()
(对于
FragmentStateAdapter
)内创建片段的新实例