2016-10-01 1 views
0

ViewPagerでTabLayoutとペアリングしようとしています。ペアリングはほとんど機能していますが、その後はTabtextが消えます。Android Tablayoutビューページとペア設定した後のタブタイトルがありません

レイアウト:

  <android.support.design.widget.TabItem 
       android:id="@+id/group_tab_orders" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 

       android:text="@string/orders"/> 

      <android.support.design.widget.TabItem 
       android:id="@+id/group_tab_members" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/members"/> 

      <android.support.design.widget.TabItem 
       android:id="@+id/group_tab_meals" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/meals"/> 

     </android.support.design.widget.TabLayout> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/group_viewpager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 

コード:私も実現し、viewPager.setAdapter(new GroupContentAdapter(getFragmentManager(), reference));により削除、タイトルが変更されないことを、ので、ここでアダプタ

のコードが

tabLayout = (TabLayout) rootView.findViewById(R.id.group_tablayout); 
    viewPager = (ViewPager) rootView.findViewById(R.id.group_viewpager); 

    reference = FirebaseDatabase.getInstance().getReference("groups").child(getArguments().getString("key")); 

    viewPager.setAdapter(new GroupContentAdapter(getFragmentManager(), reference)); 
    tabLayout.setupWithViewPager(viewPager); 

です

GroupContentAdapter.java

public class GroupContentAdapter extends FragmentPagerAdapter { 

public static int SIZE = 3; 

private GroupContentFragment[] contents; 
private DatabaseReference reference; 


public class GroupContentAdapter extends FragmentPagerAdapter { 

public static int SIZE = 3; 

private GroupContentFragment[] contents; 
private DatabaseReference reference; 


public GroupContentAdapter(FragmentManager manager, DatabaseReference reference) { 
    super(manager); 
    this.reference = reference; 
    contents = new GroupContentFragment[SIZE]; 
    contents[0] = GroupContentFragment.newInstance(reference.child(Utils.GROUPORDERS), ContentType.ORDERS); 
    contents[1] = GroupContentFragment.newInstance(reference.child(Utils.GROUPMEMBERS), ContentType.MEMBERS); 
    contents[2] = GroupContentFragment.newInstance(reference.child(Utils.GROUPMEALS), ContentType.MEALS); 
} 

@Override 
public int getCount() { 
    return SIZE; 
} 

@Override 
public Fragment getItem(int position) { 
    return contents[position]; 
} 

+2

IIRCでは、 'TabLayout'は' PagerAdapter'のタブタイトルを['getPageTitle()'](https://developer.android.com/reference/android/support/v4/view/PagerAdapter)でプルします。 .html#getPageTitle(int))メソッドを使用しているため、適切なタイトルを返すには 'GroupContentAdapter'でそのメソッドをオーバーライドする必要があります。 –

+0

@MikeM。それはそれを動作させる1つの方法です。ありがとうございました。 –

答えて

0

FragmentPageAdapterのgetPageTitle()メソッドをオーバーライドする必要があります。以下を追加し、アダプタクラス内here

0

を参照してください。

@Override 
public CharSequence getPageTitle(int position) { 
    if (position == 0) 
     return "Text1"; 
    else 
     return "Text2"; 
} 

そして、私はonCreate内で以下のように追加したMainActivity内側:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    // Add a View Pager with its settings 
    viewPager = (ViewPager) findViewById(R.id.pager); 
    FragmentManager fragmentManager = getSupportFragmentManager(); 
    viewPager.setAdapter(new MyAdapter(fragmentManager)); 

    pageIndicatorView = (PageIndicatorView) findViewById(R.id.pageIndicatorView); 
    pageIndicatorView.setViewPager(viewPager); 

    // Add toolbar with its settings 
    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    toolbar.setTitle("Custom Title"); 
    setSupportActionBar(toolbar); 

    // Add tabLayout and link it to the ViewPager. 
    tabLayout = (TabLayout) findViewById(R.id.tablayout); 
    tabLayout.setupWithViewPager(viewPager); 
    tabLayout.getTabAt(0).setIcon(R.drawable.image1); 
    tabLayout.getTabAt(1).setIcon(R.drawable.image2); 
} 

そして、これはあなたがアイコンを追加される方法であります彼らがテキストを読んだ後に。

この回答をお願いします。

関連する問題