【问题标题】:How to change Fragment in View Pager using Button in the fragment? [duplicate]如何使用片段中的按钮更改 View Pager 中的片段? [复制]
【发布时间】:2023-04-02 21:10:01
【问题描述】:

我在其中有一个名为 RegisterActivity 的活动,我正在执行包含两个片段的 ViewPager。这是活动代码

public class RegisterActivity extends AppCompatActivity{

private Context context;
private Toolbar toolbar;
private TabLayout tabLayout;
public static ViewPager viewPager;
private ViewPagerAdapter adapter;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register);
    context = RegisterActivity.this;

    viewPager = findViewById(R.id.viewpager);
    setupViewPager(viewPager);

    tabLayout = findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);

}

private void setupViewPager(ViewPager viewPager) {
    adapter = new ViewPagerAdapter(getSupportFragmentManager());
    adapter.addFragment(new FragmentOne(), "Step 1");
    adapter.addFragment(new FragmentTwo(), "Step 2");
    viewPager.setAdapter(adapter);
}

class ViewPagerAdapter extends FragmentPagerAdapter {

    private final List<Fragment> fragmentList = new ArrayList<>();
    private final List<String> fragmentTitleList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) {
        super(manager);
    }

    @Override
    public Fragment getItem(int position) {
        return fragmentList.get(position);
    }

    @Override
    public int getCount() {
        return fragmentList.size();
    }

    public void addFragment(Fragment fragment, String title) {
        fragmentList.add(fragment);
        fragmentTitleList.add(title);
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return fragmentTitleList.get(position);
    }
}

}

片段一有一个 NEXT 按钮。按下此按钮时,我希望视图寻呼机滚动到 FragmentTWo。 FragmentTwo 再次有一个 BACK 按钮,我希望视图寻呼机在按下 BACK 按钮(存在于 FragmentTwo 布局中)时滚动到 fragmentOne。

【问题讨论】:

    标签: android android-viewpager


    【解决方案1】:

    RegisterActivity.viewpager.setCurrentItem(片段的位置);

    //对你所在的fragment中的按钮执行这个onClick,你需要明确fragment在pager adapter中的位置

    【讨论】:

    • 效果很好。
    猜你喜欢
    • 1970-01-01
    • 2017-10-10
    • 2020-01-23
    • 1970-01-01
    • 2020-06-22
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多