2016-06-17 8 views
2

私はTabLayoutViewPagerを使ってタブを作成しています。何らかの理由で、タブのタイトルが表示されません。タイトルを追加するには?

Titles not showing 各タブがその上にテキストを持っていなければならないので、これは奇妙です...ここで

はコードです:

public class MainActivity extends AppCompatActivity { 

    MyPageAdapter pageAdapter; 


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

     TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout); 
     tabLayout.setBackgroundColor(Color.rgb(45, 237, 192)); 
     tabLayout.addTab(tabLayout.newTab().setText("TITLE ONE")); 
     tabLayout.addTab(tabLayout.newTab().setText("TITLE TWO")); 
     tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 


     List<Fragment> fragments = new ArrayList<Fragment>(); 
     fragments.add(Enable.newInstance()); 
     fragments.add(selector.newInstance()); 

     pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments); 
     final ViewPager pager = 
       (ViewPager) findViewById(R.id.viewpager); 
     pager.setAdapter(pageAdapter); 

     tabLayout.setupWithViewPager(pager); 

     tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
      @Override 
      public void onTabSelected(TabLayout.Tab tab) { 
       pager.setCurrentItem(tab.getPosition()); 
      } 

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

      } 

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

      } 
     }); 
    } 
} 

MainActivityのJAVAです。ここにXMLがあります:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.curlybrace.ruchir.tabs.MainActivity" 
    android:windowSoftInputMode="stateVisible|adjustPan|adjustResize"> 

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


    <android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?attr/colorPrimary" 
     android:minHeight="?attr/actionBarSize" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> 


</RelativeLayout> 

また、私のタブは効果的ですが、それらのタイトルは表示されません。

+0

TabLayoutの背景色を(attre/colorPrimaryとは異なる色に)変更してみてください...テストするだけです...タイトルにもプライマリカラーを使用しています – W0rmH0le

答えて

2

addTab()コールを2つ削除します。 setupWithViewPager()を使用しています。つまり、タブはViewPagerに由来し、タイトルはPagerAdaptergetPageTitle()です。

+0

'getPageTitle()'を実装するにはどうすればいいですか?私の 'PagerAdapter'では? –

+0

@RuchirBaronia:パラメータとして指定された 'ViewPager'の位置を与えて、それをオーバーライドしてタブのタイトルを返します。このように 'TabLayout'と' ViewPager'を使用するアプリケーションについては、[このサンプルプロジェクト](https://github.com/commonsguy/cw-omnibus/tree/master/DesignSupport/TabLayout)を参照してください。 – CommonsWare

+0

2つのタブがある場合、最初のタブの位置は0で、2番目のタブの位置は1です。だから私は条件付きで、そのポジションに基づいたタイトルを返すことができますよね? –

関連する問題