Java 有没有解决此设置的ViewPager错误的方法?
我从昨晚开始就一直在解决这个问题,我使用了viewpager2,因为androidstudio中原来的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
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
)内创建片段的新实例