Ber*_*rsh 4 android android-viewpager viewpagerindicator
我正在使用ViewPagerIndicator lib中的TabPageIndicator和ViewPager来显示6个片段.假设我在第一页,如果我点击第6个标签,我会看到所有页面都滚动.是否可以禁用此动画?也许我可以在ViewPager中以某种方式禁用它?
这是适配器的代码:
public class TabBarFragmentPagerAdapter extends FragmentPagerAdapter implements IconPagerAdapter {
private final List<Fragment> items;
private static final String[] TITLES = new String[] { "Home", "Profile", "Explore", "Contacts", "Beacon" };
private static final int[] ICONS = new int[] {
R.drawable.icon_tabbar_home_bg,
R.drawable.icon_tabbar_profile_bg,
R.drawable.icon_tabbar_explore_bg,
R.drawable.icon_tabbar_contacts_bg,
R.drawable.icon_tabbar_beacon_bg
};
public TabBarFragmentPagerAdapter(FragmentManager fm, List<Fragment> items) {
super(fm);
this.items = items;
}
@Override
public Fragment getItem(int position) {
return items.get(position);
}
@Override
public int getIconResId(int index) {
return ICONS[index];
}
@Override
public CharSequence getPageTitle(int position) {
return TITLES[position];
}
@Override
public int getCount() {
return items.size();
}
}
Run Code Online (Sandbox Code Playgroud)
zna*_*nat 11
另一种选择是覆盖setCurrentItem(int i)在一个CustomViewPager类的子类ViewPager是这样的:
@Override
public void setCurrentItem(int item) {
super.setCurrentItem(item,false);
}
Run Code Online (Sandbox Code Playgroud)
我研究了 TabPageIndicator 的代码,发现目前这是不可能的。查看mTabClickListener的代码:
private final OnClickListener mTabClickListener = new OnClickListener() {
public void onClick(View view) {
TabView tabView = (TabView)view;
final int oldSelected = mViewPager.getCurrentItem();
final int newSelected = tabView.getIndex();
mViewPager.setCurrentItem(newSelected);
if (oldSelected == newSelected && mTabReselectedListener != null) {
mTabReselectedListener.onTabReselected(newSelected);
}
}
};
Run Code Online (Sandbox Code Playgroud)
为了支持此功能,我们应该向 setCurrentItem 添加第二个参数。像这样的东西:
mViewPager.setCurrentItem(newSelected, smoothScrollEnabled);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4423 次 |
| 最近记录: |