【问题标题】:Switching tabs not working on click of tabs with PagerSlidingTabStrips使用 PagerSlidingTabStrips 切换选项卡在单击选项卡时不起作用
【发布时间】:2014-08-31 19:23:02
【问题描述】:

我已将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 选项卡的选择器未使用选择器正确选择可绘制对象。这可能是什么原因?

这是它的图片。

【问题讨论】:

    标签: android android-viewpager fragmentpageradapter pagerslidingtabstrip


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      在我查看了其他具有滑动选项卡功能的选项(例如 SlidingTabsLayout 也无法单击选项卡)之后,我发现了为什么单击选项卡无法与 PagerSlidingTabStrips 一起使用。

      发现问题出在我的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 保持相同的高度,PagerSlidingTabStrips 渲染解决了我的问题。

      【讨论】:

      • 使用 LinearLayout 可能比添加边距更好
      • 它帮助了我!如果您使用的是相对布局,只需在您的 viewpager 中添加 android:layout_below="@+id/tabs"
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-13
      • 2017-09-29
      • 2020-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      相关资源
      最近更新 更多