如何从子片段中选择下一个选项卡 [英] How to select next tab from child fragment

查看:69
本文介绍了如何从子片段中选择下一个选项卡的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当从子片段中单击按钮时,我需要切换下一个选项卡.

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆