但遇到一个问题。当我运行该应用程序时,我看不到屏幕刷卡,也看不到选项卡。你能帮我吗
这是我的代码:
public class MainActivity extends AppCompatActivity {
Toolbar toolbar;
TabLayout tabLayout;
ViewPager viewPager;
ViewPagerAdapter viewPagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar= (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
tabLayout= (TabLayout) findViewById(R.id.tablayout);
viewPager= (ViewPager) findViewById(R.id.viewpager);
viewPagerAdapter=new ViewPagerAdapter(getSupportFragmentManager());
viewPagerAdapter.addFragments(new Home(),"Home");
// viewPagerAdapter.addFragments(new Top(),"Top");
// viewPagerAdapter.addFragments(new Buttom(),"Buttom");
viewPager.setAdapter(viewPagerAdapter);
tabLayout.setupWithViewPager(viewPager);
}
}
我在注释行上出现错误。
这是我的寻呼机适配器代码:
public class ViewPagerAdapter extends FragmentPagerAdapter {
ArrayList<Fragment> fragments= new ArrayList<>();
ArrayList<String> tabTitles = new ArrayList<>();
public void addFragments(Home fragments, String titles){
this.fragments.add(fragments);
this.tabTitles.add(titles);
}
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return tabTitles.get(position);
}
}
在我的XML中,我只有Viewpager,Toolbar和TabLayout。
请帮忙。
最佳答案
大概是这样的:
Home fragments
尝试更改为此:
Fragment fragments
方法是这样的:
public void addFragments(Fragment fragments, String titles){
this.fragments.add(fragments);
this.tabTitles.add(titles);
}
因此,您在
method
中将Home fragments
设置为paramter
,并且当您调用不同于Home的其他片段时,由于parameter
是Home,您会收到错误消息,请按照我说的将参数更改为Fragment fragments
的方法进行修复。这是一个小错误。关于android - 滑动标签不起作用,我在屏幕上看不到,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45530887/