使用PagerSlidingTabStrips单击选项卡时切换标签不起作用

时间:2014-07-10 12:08:40

标签: android android-viewpager fragmentpageradapter pagerslidingtabstrip

我已将PagerSlidingTabStrips集成到我的应用程序中,该应用程序在选项卡的滑动上按预期运行。

但是选择PagerSlidingTabStrips上的标签并不会切换到在标签之间滑动时完美无效的片段。

FragmentManager fm = getSupportFragmentManager();
mPager = (ViewPager) findViewById(R.id.pager);
ViewPagerAdapter viewpageradapter = new ViewPagerAdapter(fm);
mPager.setAdapter(viewpageradapter);
pagerSlidingTabStrp = (PagerSlidingTabStrip) findViewById(R.id.pager_sliding_tab_strip);
pagerSlidingTabStrp.setShouldExpand(true);
pagerSlidingTabStrp.setViewPager(mPager);
pagerSlidingTabStrp.setOnPageChangeListener(ViewPagerListener);     


// Capture ViewPager page swipes
    ViewPager.SimpleOnPageChangeListener ViewPagerListener = new ViewPager.SimpleOnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            super.onPageSelected(position);
            switch(position)
            {
            case 0:
                setMotherActionBarTitle(getString(R.string.str_all_contacts_fragment));
                break;
            case 1:
                setMotherActionBarTitle(getString(R.string.str_group_contacts_fragment));
                break;
            case 2:
                setMotherActionBarTitle(getString(R.string.str_call_logs_fragment));
                break;                  
            }
        }
    };

ViewPagerAdapter

public class ViewPagerAdapter extends FragmentPagerAdapter implements IconTabProvider {
final int PAGE_COUNT = 3;
private final int[] ICONS = { R.drawable.tab_icon_zname_contact_selector, R.drawable.tab_icon_zname_friends_selector, 
        R.drawable.tab_icon_zname_call_log_selector };

public ViewPagerAdapter(FragmentManager fm) {
    super(fm);
}


@Override
public Fragment getItem(int item) {
    switch (item) {

    case 0:
        ContactsFragment homeFragment = new ContactsFragment();
        return homeFragment;
    case 1:
        GroupsFragment groupsFragment = new GroupsFragment();
        return groupsFragment;
    case 2:
        CallLogsFragment callLogsFragment = new CallLogsFragment();
        return callLogsFragment;
    }
    return null;
}

@Override
public int getCount() {
    return PAGE_COUNT;
}

@Override
public int getPageIconResId(int position) {
    return ICONS[position];
 }

} 

如何使选择标签与PagerSlidingTabStrips一起使用?更多PagerSlidingTabStrips个标签甚至不是clickabe。

我错过了实施的东西吗?或者添加pagerSlidingTabStrips.setClickable(true)?还是什么?

PagerSlidingTabStrips选项卡的选择器再次未选择与选择器正确绘制。可能的原因是什么?

这是一张照片。 PagerSlidingTabStrips

2 个答案:

答案 0 :(得分:17)

我已经找到了为什么在我查找其他选项以及PagerSlidingTabStrips之类的滑动标签功能之后点击标签不能与SlidingTabsLayout一起使用时,这些功能也无法点击标签。

发现问题出在我的xml布局上,该布局覆盖整个ViewPager,但不会使PagerSlidingTabStripsSlidingTabsLayout点击的标签可用。

        <com.netdoers.zname.utils.PagerSlidingTabStrip
            android:id="@+id/pager_sliding_tab_strip"
            android:layout_width="fill_parent"
            android:layout_height="45dip"
            android:background="@android:color/white"
            app:pstsDividerColor="#FFFFA500"
            app:pstsIndicatorColor="#FFFFA500"
            app:pstsTabPaddingLeftRight="14dip"
            app:pstsUnderlineColor="#FFFFA500" />


        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="45dp" />

ViewpagerPagerSlidingTabStips的{​​{1}}相同的高度,PagerSlidingTabStrips呈现的问题解决了我的问题。

答案 1 :(得分:1)

确实问题出在XML中。可能由于RelativeLayout而导致的问题是XML。考虑使用LinearLayout将确保视图之间没有重叠。