当从子片段中单击按钮时,我需要切换下一个选项卡。
这就是我在父母中设置标签的方式,
TabAdapter adapter;
private void setUpTabs(ViewPager viewPager) {
adapter = new TabAdapter(getSupportFragmentManager());
adapter.addFragment(new FirstTabFragment(), "First Tab");
adapter.addFragment(new SecondTabFragment(), "Second Tab");
viewPager.setAdapter(adapter);
}
我的TabAdapter
课程是,
public class TabAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public TabAdapter(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);
}
}
我创建了一个在父
中切换标签的方法TabLayout myTabs= (TabLayout) findViewById(R.id.my_tabs);
Button chkBtn = (Button) findViewById(R.id.check_button);
chkBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
viewPager.setCurrentItem(1);
}
});
切换父类中的选项卡可以正常工作。但我怎么能在FirstTabFragment
内做同样的事情,请帮助我。
答案 0 :(得分:2)
设置当前选择的页面。 `
示例代码
chkBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
viewPager.setCurrentItem(2);
}
});
答案 1 :(得分:2)
你应该致电
viewPager.setCurrentItem(fragmentIdex);
答案 2 :(得分:1)
为了让您的用户界面更具互动性和美观,我将分享我已实施的内容。
只是要从片段的java文件中访问您的viewPager
,请在您的父活动中声明您的viewPager
,如下所示。
public static ViewPager viewPager;
然后在片段中按钮的onClick
方法或onClickListener
中,您可以使用它。
ParentActivity.viewPager.arrowScroll(View.FOCUS_RIGHT);
这将平滑滚动您的viewpager
到第二个片段,是的,如果您想限制用户直接滚动,您可以禁用viewPager的滚动,阅读here。
如果用户想要通过
返回FirstFragment
,您也可以将焦点移至左侧
ParentActivity.viewPager.arrowScroll(View.FOCUS_LEFT);
是的,它在我发布答案之前首先进行测试,愚蠢的我。