astuetz / PagerSlidingTabStrip

An interactive indicator to navigate between the different pages of a ViewPager
139 stars 44 forks source link

Tab indicator not moving upon scrolling tabs while upon clicking its working. #291

Open Neelambansal opened 7 years ago

Neelambansal commented 7 years ago

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;

/**

}