2015-12-21 28 views
4

我已實施this example單擊選項卡布局根本不起作用

但無法點擊第二個標籤。

我的XML文件看起來像

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/header" 
    android:orientation="horizontal"> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="fill_parent" 
     android:layout_height="48dp" 
     android:layout_below="@+id/header" 
     android:background="@color/colorPrimary" 
     app:tabSelectedTextColor="#ffffff" /> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/view_pager" 
     android:layout_width="match_parent" 
     android:layout_marginTop="@dimen/padding" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/tab_layout" /> 

</LinearLayout> 

和主要活動

pager= (ViewPager) findViewById(R.id.view_pager); 
    tabLayout= (TabLayout) findViewById(R.id.tab_layout); 

    FragmentManager manager=getSupportFragmentManager(); 
    BuyCurrencyPagerAdapter adapter=new BuyCurrencyPagerAdapter(manager); 

    //set Adapter to view pager 
    pager.setAdapter(adapter); 
    tabLayout.setupWithViewPager(pager); 
    pager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); 

    tabLayout.setTabsFromPagerAdapter(adapter); 

請給任何建議。

+0

看,因爲它的每個碼是什麼你正在綁定http://stackoverflow.com/q/34015117/2404262 –

回答

3

UPDATE: setOnTabSelectedListener棄用,請addOnTabSelectedListener

試試這個:

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

}); 
+3

我試過這個,不工作 – Shruti

+0

用addOnTabSelectedListener()版本爲我工作。 – Ivan

4

有時候,我相信問題可能是,ViewPager位於TabLayout以上。你要放在下面這樣的:

<AppBarLayout> 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/colorPrimary"/> 

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

<android.support.v4.view.ViewPager 
     android:id="@+id/view_pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin"/> 
+1

我有這個問題,ViewPager和AppBarLayout被放置在一個RelativeLayout中。將其更改爲LinearLayout可以解決問題。 – checklist

0

由於這種方法現在drepecatad,你可以在這個問題使用新的方法

addOnTabSelectedListener(OnTabSelectedListener)