ViewPager正在工作,但手动单击不同的选项卡失败



我正试图在我的项目中实现ViewPager,该项目已成功实现,但当我手动单击"注册"选项卡时,它没有任何响应,但滑动工作正常。我应该把ClickListener放在哪里,我怎么得不到。

public class LoginActivity extends AppCompatActivity {
TabLayout tabLayout;
ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
tabLayout = findViewById(R.id.tab_layout);
viewPager = findViewById(R.id.view_pager);

tabLayout.addTab(tabLayout.newTab().setText("Login"));
tabLayout.addTab(tabLayout.newTab().setText("Signup"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
final LoginAdapter adapter = new LoginAdapter(getSupportFragmentManager(), this, tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setTranslationY(300);
}
}
public class LoginAdapter extends FragmentPagerAdapter {
private Context context;
int totalTabs;
public LoginAdapter(FragmentManager fa, Context context, int totalTabs) {
super(fa);
this.context = context;
this.totalTabs = totalTabs;
}
@Override
public int getCount() {
return totalTabs;
}
public Fragment getItem(int position) {
switch (position) {
case 0:
LoginTabFragment loginTabFragment = new LoginTabFragment();
return loginTabFragment;
case 1:
SignupTabFragment signupTabFragment = new SignupTabFragment();
return signupTabFragment;
default:
return null;
}
}
}

只需要在tabLayout中设置addOnTabSelectedListener(),并使用viewPager.setCurrentItem(tab.getPosition());onTabSelected()中设置当前项。

tableLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});

最新更新