2016-08-08 2 views
1
package net.simplifiedcoding.androidtablayout.Activity; 

import android.content.Context; 
import android.graphics.Color; 
import android.graphics.PorterDuff; 
import android.support.design.widget.TabLayout; 
import android.support.v4.app.Fragment; 
import android.support.v4.view.ViewPager; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.Adapter; 
import android.widget.Button; 
import android.widget.Toast; 

import com.astuetz.PagerSlidingTabStrip; 

import net.simplifiedcoding.androidtablayout.Adapter.Pager; 
import net.simplifiedcoding.androidtablayout.R; 

import java.util.Vector; 

//Implementing the interface OnTabSelectedListener to our MainActivity 
//This interface would help in swiping views 
public class MainActivity extends AppCompatActivity implements TabLayout.OnTabSelectedListener { 
    Context context; 
    //# 
    final int[] icons = new int[]{R.drawable.homeicon, R.drawable.searchicoon, R.drawable.uploadicon, R.drawable.usericon}; 
    //This is our tablayout 
    private TabLayout tabLayout; 

    //This is our viewPager 
    private ViewPager viewPager; 
    Button optionmenu; 

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





     // getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 





     //Adding toolbar to the activity 
     //Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     //setSupportActionBar(toolba 
     //Initializing the tablayout 
     tabLayout = (TabLayout) findViewById(R.id.tabLayout); 

     viewPager = (ViewPager) findViewById(R.id.pager); 
     tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 

     final PagerSlidingTabStrip tabStrip=(PagerSlidingTabStrip)findViewById(R.id.pagerslidingtabstrip); 
     //tabStrip.setViewPager(Pager); 
     //Adding the tabs using addTab() method 
     tabLayout.addTab(tabLayout.newTab().setText("")); 
     tabLayout.addTab(tabLayout.newTab().setText("")); 
     tabLayout.addTab(tabLayout.newTab().setText("")); 
     tabLayout.addTab(tabLayout.newTab().setText("")); 

     tabLayout.getTabAt(0).setIcon(icons[0]); 
     tabLayout.getTabAt(1).setIcon(icons[1]); 
     tabLayout.getTabAt(2).setIcon(icons[2]); 
     tabLayout.getTabAt(3).setIcon(icons[3]); 

     tabLayout.getTabAt(0).getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); 
     tabLayout.getTabAt(1).getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); 
     tabLayout.getTabAt(2).getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); 
     tabLayout.getTabAt(3).getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); 




     //Initializing viewPager 


     //Creating our pager adapter 
     Pager adapter = new Pager(getSupportFragmentManager(), tabLayout.getTabCount()); 

     //Adding adapter to pager 
     viewPager.setAdapter(adapter); 
     //tabLayout.setupWithViewPager(viewPager); 
     // tabStrip.setOnPageChangeListener((ViewPager.OnPageChangeListener) this); 
     viewPager.setCurrentItem(0); 


     viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
      @Override 
      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
//tabLayout.setupWithViewPager(viewPager); 
       //tabLayout.setScrollIndicators(position); 
       //tabStrip.setViewPager(viewPager); 
       //tabLayout.setScrollIndicators(position); 

      } 
      @Override 
      public void onPageSelected(int position) { 

      } 

      @Override 
      public void onPageScrollStateChanged(int state) { 

      } 
     }); 
     tabLayout.setOnTabSelectedListener(this); 

    } 







    @Override 
    public void onTabSelected(TabLayout.Tab tab) { 
     viewPager.setCurrentItem(tab.getPosition()); 
     // super.onTabSelected(tab); 
     tab.getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); 

     //int tabIconColor = ContextCompat.getColor(context, R.color.tabselectedIconcolor); 
     //tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN); 
    } 

    @Override 
    public void onTabUnselected(TabLayout.Tab tab) { 
     tab.getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); 

    } 

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

    } 


    } 
<LinearLayout 
    android:id="@+id/main_layout" 
    android:orientation="vertical" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:background="@color/colorPrimary" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".Activity.MainActivity"> 

    <!-- our toolbar --> 
    <!-- our tablayout to display tabs --> 
    <Toolbar 
     android:layout_width="match_parent" 
     android:layout_height="10dp" 
     android:background="@color/colorPrimary"> 
    </Toolbar> 
    <android.support.design.widget.TabLayout 
     android:id="@+id/tabLayout" 
     android:layout_marginTop="4dp" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabIndicatorColor="#ffffff" 
     app:tabIndicatorHeight="3dp" 
     android:background="?attr/colorPrimary" 
     android:minHeight="?attr/actionBarSize" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> 
    <!-- View pager to swipe views --> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:background="@color/colorPrimary" 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent"> 
    <com.astuetz.PagerSlidingTabStrip 
     android:id="@+id/pagerslidingtabstrip" 
     android:layout_width="match_parent" 
     android:layout_height="0dip" /> 
    </android.support.v4.view.ViewPager> 

H 
</LinearLayout> 

내가 Tabsrtip.setupwithviewpager을 을 사용 .When이 내 레이아웃 파일입니다 rosource 파일의 오류를 보여줍니다. 또는 애플리케이션이 불행하게도 중지되었습니다. tablayout.setupwithviewpager 을 사용했는데 오류도 표시됩니다. Beloy가 내 Java 파일입니다. ViewPager 어댑터탭 표시는 탭이나 단편 움직이지 액션 바

@Override 
    public CharSequence getPageTitle(int position) { 
     return tabText[position]; 
    } 
    @Override 
    public int getCount() { 
     return 2; 
    } 


    tabText = new String[]{ 
      "Tab 1", 
      "Tab 2" 
    }; 

프로그램 tabLayout에 탭을 추가 할 필요가 없습니다에 getPageTitle 기능을이 라인을

tabLayout = (TabLayout) findViewById(R.id.tabLayout); 
viewPager = (ViewPager) findViewById(R.id.pager); 
Pager adapter = new Pager(getSupportFragmentManager(),tabLayout.getTabCount()); 


viewPager.setAdapter(adapter); 
tabLayout .setupWithViewPager(viewPager); 

을 추가하고 우선하여 viewpager와

+0

나는 이렇게 생각할 수 있다고 생각합니다. 이 링크를 참조하십시오 .http : //www.androidhive.info/2015/09/android-material-design-working-with-tabs/ –

+0

그리고 logcat을 게시하십시오. –

답변

-1

동기화하여 tablayout. 뷰 페이지와 동기화하면 getpageTitle에서 탭 이름을 선택합니다. 및 tabText

getCount

의 탭의 수는 사용자 Tablayout CHAGE 탭 아이콘 변경 탭

의 이름을 포함 문자열 배열이다. 페이지가 선택 또는 선택 해제 될 때 아이콘을 변경한다 addOnPageChangeListener

//Method to set up tab layout icon 
private void setUpTabIcon() { 
    for (int i = 0; i < mTabLayout.getTabCount(); i++) { 
     if (mTabLayout.getTabAt(i).isSelected()) 
      mTabLayout.getTabAt(i).setIcon(imageResId[i][1]); 
     else 
      mTabLayout.getTabAt(i).setIcon(imageResId[i][0]); 

    } 

} 

이 함수 onPageSelected 방법에있어서 그 기능을 사용한다. 2 상태의 아이콘을 사용하고 기본값은 1이고 하나는 눌렀습니다.

+0

나는 이것을했다. 그러나 나의 신청은 불행하게도 멈췄다. – Neelam

+0

내 수정 된 답변보기 나는 당신의 코드를 편집했다. –

+0

고마워. 잘했다. – Neelam

3

사용 : 귀하의 경우

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

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

     } 

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

     } 
    }); 

viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {... 은 잘못된 것입니다.