我已经制作了一个包含3个片段的ViewPager:
public class MainActivity extends AppCompatActivity {
TabLayout tabLayout;
ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.viewPager);
viewPager.setAdapter(new CustomAdapter(getSupportFragmentManager(),getApplicationContext()));
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tabLayout.setupWithViewPager(viewPager);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
});
}
private class CustomAdapter extends FragmentPagerAdapter {
private String fragments [] = {"Fragment 1","Fragment 2", "Fragment 3"};
public CustomAdapter(FragmentManager supportFragmentManager, Context applicationContext) {
super(supportFragmentManager);
}
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
return new Fragment1();
case 1:
return new Fragment2();
case 2:
return new Fragment3();
default:
return null;
}
}
@Override
public int getCount() {
return fragments.length;
}
@Override
public CharSequence getPageTitle(int position) {
return fragments[position];
}
}
}
我会使用String Title(如Fragment 1,2 ......)代替可绘制文件夹的图像。
答案 0 :(得分:1)
我没有从你的问题中得到你想要做的事情!但我假设你想要设置图像而不是片段的标题。如果是,那么它可能对你有帮助。
您可以使用tabLayout对象使用getTabAt,setIcon()方法轻松设置图标。
var regexShort = /^https:\/\/youtu\.be\/(.*)$/i;
你也可以参考:
How to add page title and icon in android FragmentPagerAdapter
如果你的问题不同,可以随意提问,谢谢。
答案 1 :(得分:0)
如果您使用的是tablayout设计:
tabLayout.getTabAt(ⅰ).setIcon();