4

我已集成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选项卡甚至不是可点击的。

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

同样,PagerSlidingTabStrips选项卡的选择器未使用选择器选择正确的可绘制对象。这可能是什么原因?

这是它的图片。 寻呼机滑动标签条

4

2 回答 2

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" />

从渲染的顶部Viewpager保持相同的高度解决了我的问题。PagerSlidingTabStipsPagerSlidingTabStrips

于 2014-07-12T15:35:11.757 回答
1

事实上,问题在于 XML。该问题可能是由于在 XML 中使用了 RelativeLayout。考虑使用 LinearLayout 将确保视图之间没有重叠。

于 2015-04-02T14:22:43.817 回答