
我有一个使用actionbarsherlock的工作状态分页器项目,但我在获取显示的当前片段时遇到问题.是否有可能获得当前片段的位置?
解决方法:
对的,这是可能的.如果您使用的是VIEwPager,则可以这样做:
_vIEwPager.getCurrentItem();或者那个
_Pagelistener = new Pagelistener();_vIEwPager.setonPagechangelistener(_Pagelistener);并保持对当前页面的跟踪:
private int _currentPage; private static class Pagelistener extends SimpleOnPagechangelistener{ public voID onPageSelected(int position) { Log.i(TAG, "page selected " + position); _currentPage = position; } }或者你可以使用像这样的TabAdapter轻松地做到这一点:
public static class TabsAdapter extends FragmentPagerAdapter implements Actionbar.TabListener, VIEwPager.OnPagechangelistener { private final Context mContext; private final Actionbar mActionbar; private final VIEwPager mVIEwPager; private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>(); static final class TabInfo { private final Class<?> clss; private final Bundle args; TabInfo(Class<?> _class, Bundle _args) { clss = _class; args = _args; } } public TabsAdapter(SherlockFragmentActivity activity, VIEwPager pager) { super(activity.getSupportFragmentManager()); mContext = activity; mActionbar = activity.getSupportActionbar(); mVIEwPager = pager; mVIEwPager.setAdapter(this); mVIEwPager.setonPagechangelistener(this); } public voID addTab(Actionbar.Tab tab, Class<?> clss, Bundle args) { TabInfo info = new TabInfo(clss, args); tab.setTag(info); tab.setTabListener(this); mTabs.add(info); mActionbar.addTab(tab); notifyDataSetChanged(); } @OverrIDe public int getCount() { return mTabs.size(); } @OverrIDe public Fragment getItem(int position) { TabInfo info = mTabs.get(position); return Fragment.instantiate(mContext, info.clss.getname(), info.args); } public voID onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } public voID onPageSelected(int position) { mActionbar.setSelectednavigationItem(position); ((SherlockFragmentActivity) mContext).supportInvalIDateOptionsMenu(); } public voID onPageScrollStateChanged(int state) { } public voID onTabSelected(Tab tab, FragmentTransaction ft) { Object tag = tab.getTag(); for (int i = 0; i < mTabs.size(); i++) { if (mTabs.get(i) == tag) { mVIEwPager.setCurrentItem(i); } } } public voID onTabUnselected(Tab tab, FragmentTransaction ft) { } public voID onTabReselected(Tab tab, FragmentTransaction ft) { } }您只需要使用一种或两种方法保留当前页面.例如在onTabSelected中
希望它能帮助你
祝好运
以上是内存溢出为你收集整理的android – 使用actionbarsherlock的状态寻呼机获取当前片段位置全部内容,希望文章能够帮你解决android – 使用actionbarsherlock的状态寻呼机获取当前片段位置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)