android - 如何让滑动标签在 Android 开发中变得可点击?
问题描述
我制作了一个当前正在使用的滑动标签功能。我也想让它可点击
public class MainActivity extends AppCompatActivity {
public List<String> datafragmnt = new ArrayList<String>();
public ViewPager viewPager;
public pagerfragmetAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
datafragmnt.add("Frgmnt 1 ");
datafragmnt.add("Frgmnt 2 ");
datafragmnt.add("Frgmnt 3 ");
datafragmnt.add("Frgmnt 4 ");
myAdapter = new pagerfragmetAdapter(getSupportFragmentManager());
myAdapter.setMydata(datafragmnt);
myAdapter.setFragmntList(new fragment1());
myAdapter.setFragmntList(new fragment2());
myAdapter.setFragmntList(new fragment3());
myAdapter.setFragmntList(new fragment4());
viewPager = (ViewPager) findViewById(R.id.viewPager);
viewPager.setAdapter(myAdapter);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
}
这是我到目前为止所尝试的。欢迎任何帮助!请帮我!
解决方案
您需要为该视图页面创建一个适配器,如下所示:
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
在SetUpViewPager
你添加你的片段是这样的:
private void setupViewPager(ViewPager viewPager) {
Main.ViewPagerAdapter adapter = new Main.ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new fragment1(), "FRAGN+MENT UNO");
推荐阅读
- node.js - MongoDB 未使用 docker 容器从 node.js 连接
- c++ - 使用 riscv 链接器链接某些库时出现问题
- java - 我无法通过此代码找到最小的数字。如何通过修改此代码找到最小的数字?
- javascript - 如何向数据库中的所有用户发送网络推送?
- python - 以 Stripe 的方式实例化 Python 类
- python - 我知道 map 返回一个迭代器,但是我们如何将迭代器分配给 a 和 b?
- javascript - Javascript选择变量
- rust - Tokio 任务在完成前退出
- javascript - 有人可以向我解释这段代码吗?
- html - 完整尺寸的背景图像,但屏幕的第二半仍然是空的