2016-10-20 78 views
0

在我的预测应用程序中,我为每一天实施一个片段。FragmentPagerAdapter:更改可见片段的标题

的架构是: FragmentActivity < < PagerTabStrip + ViewPager < < FragmentPagerAdapter

所有做工精细。 我的需求是以这种方式根据其可见性显示片段标题:

01/10/16 | 02十月2016 | 16年3月10日

我最初的想法是做在FragmentPagerAdapter在:

public void set_current_position(int i) 
{ 
    mCurrent_position = i; 
} 

@Override 
public CharSequence getPageTitle(int position) 
{ 
    String strDT = null; 
    boolean isTop = (position == mCurrent_position); 
    Fragment fragment = (Fragment) getItem(position); 
    Bundle data = fragment.getArguments(); 
    long ts = data.getLong(keyDate); 
    Date date = new Date(ts); 

    if (isTop) 
     strDT = FullDateFormat(date); 
    else 
     strDT = ShortDateFormat(date); 

    return strDT; 
} 

结果是不恒定的;一段时间它工作很好,但有些时候没有。 我认为set_current_position是在'getPageTitle之前或之后随机执行的。

你有什么想法。

回答

0

您可以尝试将OnTabSelectedListener设置为TabLayout。

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
    @Override 
    public void onTabSelected(TabLayout.Tab tab) { 

     // do your stuff 

    } 

    @Override 
    public void onTabUnselected(TabLayout.Tab tab) { 

    } 

    @Override 
    public void onTabReselected(TabLayout.Tab tab) { 

    } 
}); 
+0

tableLayout可以解决我的问题,但我不能只显示3个选项卡(共7个)。 – tazer

+0

看看这是否有助于你http://viewpagerindicator.com/ – cuoka

+0

或http://blog.dandyer.co.uk/2011/04/18/scrolling-tabs-in-android/ – cuoka

相关问题