Android设计库中如何使用TabLayout获取当前选中项位置
How to get the current selected item position using TabLayout in Android Design Library
我正在使用 android 设计库 TabLayout,因为我如何才能获得当前选定项目的选项卡位置。
ViewPager pager = (ViewPager) view.findViewById(R.id.pager);
MyPagerAdapter adapter = new MyPagerAdapter(getChildFragmentManager());
pager.setAdapter(adapter);
tabLayout.setupWithViewPager(pager);
您可以调用ViewPager的getCurrentItem()
获取当前显示项的索引。
[2016 年 7 月 29 日更新]
参考已接受的答案,因为以下答案已弃用。如果您使用的是旧版本,请参考它。
你可以轻松做到...
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
pos = tab.getPosition();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
从支持库的版本 22.2.1 开始,TabLayout 有一个方法 getSelectedTabPosition
。
mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
int position = tab.getPosition();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
我正在使用 android 设计库 TabLayout,因为我如何才能获得当前选定项目的选项卡位置。
ViewPager pager = (ViewPager) view.findViewById(R.id.pager);
MyPagerAdapter adapter = new MyPagerAdapter(getChildFragmentManager());
pager.setAdapter(adapter);
tabLayout.setupWithViewPager(pager);
您可以调用ViewPager的getCurrentItem()
获取当前显示项的索引。
[2016 年 7 月 29 日更新]
参考已接受的答案,因为以下答案已弃用。如果您使用的是旧版本,请参考它。
你可以轻松做到...
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
pos = tab.getPosition();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
从支持库的版本 22.2.1 开始,TabLayout 有一个方法 getSelectedTabPosition
。
mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
int position = tab.getPosition();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}