PagerSlidingTabStrip
PagerSlidingTabStrip copied to clipboard
Tab indicator not moving upon scrolling tabs while upon clicking its working.
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>
package net.simplifiedcoding.androidtablayout.Adapter;
import android.os.Parcelable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.view.View; import android.view.ViewGroup;
import net.simplifiedcoding.androidtablayout.Activity.Tab1; import net.simplifiedcoding.androidtablayout.Activity.Tab2; import net.simplifiedcoding.androidtablayout.Activity.Tab3; import net.simplifiedcoding.androidtablayout.Activity.Tab4;
import java.util.Vector;
/**
-
Created by Belal on 2/3/2016. */ //Extending FragmentStatePagerAdapter public class Pager extends FragmentStatePagerAdapter {
//integer to count number of tabs int tabCount; public Pager(FragmentManager fm, int tabCount) { super(fm); //Initializing tab count this.tabCount= tabCount; }
//Overriding method getItem @Override public Fragment getItem(int position) { //Returning the current tabs switch (position) { case 0: Tab1 tab1 = new Tab1(); return tab1; case 1: Tab2 tab2 = new Tab2(); return tab2; case 2: Tab3 tab3 = new Tab3(); return tab3; case 3: Tab4 tab4 = new Tab4(); return tab4; default: return null; } }
//Overriden method getCount to get the number of tabs @Override public int getCount() {
return 4;}
}