6

Tôi sử dụng thanh tác vụ ActionBarSherlock và ViewPagerIndicator để triển khai hiệu ứng trượt và thanh tác vụ. Do đó, tôi có thể vuốt các Phân đoạn khác nhau, nhưng tiêu đề chỉ báo không được hiển thị.ViewPagerIndicator không hiển thị văn bản tiêu đề

Captured Screen

Dưới đây là FragmentActivity tôi

public class eventActivity extends SherlockFragmentActivity { 
    ViewPagerFragmentAdapter mAdapter; 
    ViewPager mPager; 
    PageIndicator mIndicator; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.event_layout); 

    ActionBar actionBar = getSupportActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true); 
    actionBar.setDisplayShowTitleEnabled(false); 
    actionBar.setDisplayUseLogoEnabled(true); 

    mAdapter = new ViewPagerFragmentAdapter(getSupportFragmentManager()); 
    mPager = (ViewPager)findViewById(R.id.pager); 
    mPager.setAdapter(mAdapter); 
    mIndicator = (TitlePageIndicator)findViewById(R.id.indicator); 
    mIndicator.setViewPager(mPager); 
    mIndicator.setCurrentItem(1); 

} 
    ...... 

Dưới đây là bộ chuyển đổi của tôi

public static class ViewPagerFragmentAdapter extends FragmentPagerAdapter implements TitleProvider { 

    ArrayList<Fragment> fragments = new ArrayList<Fragment>(); 
    ArrayList<String> titles = new ArrayList<String>(); 

    public ViewPagerFragmentAdapter(FragmentManager fm) { 
     super(fm); 
     fragments.add(new eventInvitedFragment()); 
     titles.add("Invited"); 
     fragments.add(new eventAllFragment()); 
     titles.add("all"); 
     fragments.add(new eventParticipatedFragment()); 
     titles.add("participated"); 
    } 


    @Override 
    public Fragment getItem(int position) { 
     return fragments.get(position); 
    } 

    @Override 
    public int getCount() { 
     return fragments.size(); 
    } 

    @Override 
    public String getTitle(int position) { 
     return titles.get(position); 
    } 
} 

Trả lời

12

Tôi đã giải quyết vấn đề bằng cách thay đổi getTitle (int position) để getPageTitle (int) trong ViewPagerFragmentAdapter. ViewPagerIndicator ChangLog có mô tả sau đây:

Tiêu đề chỉ số bộ chuyển đổi callback bây giờ sử dụng các phương pháp tiêu chuẩn getPageTitle (int) giới thiệu trong phiên bản r6 của thư viện hỗ trợ.

+1

Cảm ơn bạn đã đăng giải pháp cho câu hỏi của riêng bạn. Nó đã giúp đỡ tôi. – Seth

+2

Tôi sử dụng phương thức getPageTitle (int) để trả về tiêu đề nhưng vấn đề không được giải quyết. Làm ơn giúp tôi. –

+0

@NguyenMinhBinh Bạn đang thiếu 'tabLayout.setupWithViewPager (mViewPager);' ? Đây là một trong những lý do bạn sẽ không thấy các tab –

Các vấn đề liên quan