2015-12-21 73 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)