【问题标题】:FragmentPagerAdapter: Change title of visible fragmentFragmentPagerAdapter:更改可见片段的标题
【发布时间】:2016-10-20 08:01:51
【问题描述】:

在我的预测应用程序中,我每天都实现一个片段。

架构是: FragmentActivity

一切正常。 我需要以这种方式根据其可见性显示片段标题:

2016 年 1 月 10 日 | 2016 年 10 月 2 日 | 2016 年 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 之前或之后随机执行的。

你有什么想法吗?

【问题讨论】:

    标签: android fragment fragmentpageradapter


    【解决方案1】:

    您可以尝试将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) {
    
        }
    });
    

    【讨论】:

    • tableLayout 可以解决我的问题,但我不能只显示 3 个标签(共 7 个)。
    • 两种解决方案都显示所有 7 个选项卡。现在我就让它保持原样,等待空闲时间进行调查。非常感谢您的帮助
    猜你喜欢
    • 2014-03-17
    • 2012-09-15
    • 2015-03-11
    • 2015-06-09
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多