当我们滚动时,Tabs指示器不随选项卡或片段一起移动,当我们在没有动作栏的Tablayout中单击选项卡时,它工作正常

Nee*_*lam 1 android

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) {

    }


    }
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

这是我的布局文件。当我使用Tabsrtip.setupwithviewpager时,它在rosource文件中显示错误。或不幸的是应用程序停止了。我用tablayout.setupwithviewpager它也显示错误。Beloy是我的java文件。

Piy*_*ush 5

使用 :

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) {

        }
    });
Run Code Online (Sandbox Code Playgroud)

就您而言,这 viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {... 是错误的。