如何从子片段中选择下一个选项卡 [英] How to select next tab from child fragment
问题描述
当从子片段中单击按钮时,我需要切换下一个选项卡.
I need to switch next tab, when a button is clicked from a child fragment.
这是我在父级中设置标签的方式,
This is how I setup tabs in parent,
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);
}
}
我创建了一种在父级"内部切换标签的方法
I created a method to switch tab inside Parent
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
内部做同样的事情,请帮助我.
Switching tabs inside parent class works fine. But how could I Do the same inside FirstTabFragment
, Please help me.
推荐答案
为了使您的UI更具交互性和美观,我将分享我已经实现的内容.
Just to make your UI more Interactive and good looking, I'm gonna share what I've implemented.
只需从片段的Java文件访问您的viewPager
,请在您的父活动中如下声明您的viewPager
.
Just to access your viewPager
from the fragment's java file, declare your viewPager
as below in your parent activity.
public static ViewPager viewPager;
然后在片段的按钮的onClick
方法或onClickListener
中,就可以使用它.
Then in the onClick
method or onClickListener
of a button in the fragment, you can just use this.
ParentActivity.viewPager.arrowScroll(View.FOCUS_RIGHT);
这将使您的viewpager
平滑滚动到第二个片段,是的,如果您想限制用户直接滚动,可以禁用viewPager的滚动,请阅读
This will smooth scroll your viewpager
to the Second Fragment, and yes, if you want to limit the user from scrolling directly you can disable the scrolling of viewPager, read here.
如果用户只想回到FirstFragment
,也可以将焦点向左移动
You can also shift the focus to left if user wants to go back to FirstFragment
by just
ParentActivity.viewPager.arrowScroll(View.FOCUS_LEFT);
是的,这是我在发布答案之前进行的第一次测试的工作,愚蠢的我.
And yes, it's working as I first test before posting answers, silly me.
这篇关于如何从子片段中选择下一个选项卡的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!