2016-02-29 76 views
2

我是Android編程的新手,我試圖通過觸摸選項卡標題文本來更改選項卡。這是我的代碼無法更改TabLayout中的選項卡

activity_main

<android.support.design.widget.AppBarLayout> 

    <android.support.design.widget.CollapsingToolbarLayout> 

     <ImageView 
      android:id="@+id/image" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent" 
      android:src="@drawable/test_image" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" 
      android:scaleType="centerCrop" /> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="top" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" 
      android:background="@android:color/transparent" 
      app:layout_collapseMode="pin" 
      /> 
     <android.support.v7.widget.Toolbar/> 
    </android.support.design.widget.CollapsingToolbarLayout> 

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

Mainactivity.java

tabLayout = (TabLayout) findViewById(R.id.tabs); 
tabLayout.setupWithViewPager(viewPager); 

輸出對於該應用是一個片段作爲tablayout含有cardview標籤。現在,當我接觸的標籤頭,我可以切換到不同的標籤我也可以用我的finger.However刷卡片段切換標籤,當我加入這個

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 


      CharSequence _header = tab.getText(); 
      Selected_Tab_Header = String.valueOf(_header); 

      if (Selected_Tab_Header == "Tab1") { 
       headerImage.setImageResource(R.drawable.someImage); 

      } 

     } 

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

     } 

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

我不能切換標籤的了,即當我觸摸標籤標題雖然代碼被觸發(圖像更改),但標籤不會切換,但用手指滑動標籤仍然有效。是否有任何東西缺少我的代碼?或者有沒有其他辦法可以做到這一點?

回答

2

不要忘了在onTabSelectedviewPager.setCurrentItem(tab.getPosition())

public void onTabSelected(TabLayout.Tab tab) { 

     CharSequence _header = tab.getText(); 
     Selected_Tab_Header = String.valueOf(_header); 

     if (Selected_Tab_Header == "Tab1") { 
      headerImage.setImageResource(R.drawable.someImage); 
     } 

     if (viewPager != null) { 
      viewPager.setCurrentItem(tab.getPosition()); 
     } 
    } 

希望這有助於!

相關問題