当我单击TabLayout中其他一些活动的按钮时,如何转到第二个片段



我像这样用ViewPayer创建了TabLayout。

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/layout"
layout="@layout/common_act" />

<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
app:tabGravity="fill"
app:tabIndicatorHeight="4dp"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/colorAccent" />

<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</LinearLayout>

然后我创建了两个片段。

以显示选项卡布局 我已经为我的 TabLayout 活动创建了如下代码

public class ManageWorkShopActivity extends BaseActivity {
private ManageWorkShopActBinding mBinding;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding = DataBindingUtil.setContentView(this, R.layout.manage_work_shop_act);

mBinding.layout.title.setText("Manage Workshop");
setupViewPager(mBinding.viewpager);
mBinding.tabs.setupWithViewPager(mBinding.viewpager);
mBinding.layout.nav.setVisibility(View.VISIBLE);
mBinding.layout.nav.setOnClickListener(view -> onBackPressed());
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new ViewProfileFragment(), "Fragment1");
adapter.addFragment(new ViewPerformanceFragment(), "Fragment2");
viewPager.setAdapter(adapter);
}
}

然后我为下面的代码创建了适配器。

public 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);
}
}

然后,如果我运行应用程序,那么它将Fragment1显示为默认选择的屏幕。

以另一种方式,我有一个按钮来导航此TabLayout活动,并且如果我单击该按钮,那么我应该能够转到Fragment2作为所选屏幕。所以任何人都可以提出解决方案

提前谢谢。

您可以使用viewpager.setCurrentItem(int index)

例如,您有一个Button btnToNextFragment;

btnToNextFragment.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
yourViewPager.setCurrentItem(int indexOfYourFragment2)
}
});

当点击事件发生时,只需设置寻呼机的当前项,如下所示

nxt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPager.setCurrentItem(mPager.getCurrentItem() + 1);
}
});

最新更新