TableLayout ViewPager图标在Android中的角落显示

TableLayout ViewPager图标在Android中的角落显示,android,android-viewpager,android-tablayout,Android,Android Viewpager,Android Tablayout,我用三个选项卡实现了ViewPager,每个选项卡只有图标,它将以左对齐方式显示。我的预期输出是标签宽度相等。这是我必要的代码和屏幕截图。请指导我解决这个问题,提前谢谢 layout.xml <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:th

我用三个选项卡实现了ViewPager,每个选项卡只有图标,它将以左对齐方式显示。我的预期输出是标签宽度相等。这是我必要的代码和屏幕截图。请指导我解决这个问题,提前谢谢

layout.xml

<android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            app:tabMode="scrollable"
            app:tabIndicatorColor="@color/colorTrade_2"
            app:tabPaddingBottom="-10dp"
            app:tabPaddingEnd="-10dp"
            app:tabPaddingStart="-10dp"
            app:tabPaddingTop="-10dp"
            app:tabGravity="fill"/>

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

    <android.support.v4.view.ViewPager
        android:id="@+id/parent_viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

在layout.xml中将
app:tabMode=“scrollable”
替换为
app:tabMode=“fixed”
,添加此tabLayout.setTabGravity(tabLayout.GRAVITY\u FILL);并删除app:tabMode=“scrollable”,然后重试?谢谢你Altaf,我已经实现了你的代码,它工作得很好。让我知道我添加了更多的标签意味着,这个代码可能会出现任何问题?请放弃投票,如果我的问题是合格的。谢谢Hanks Avani,我已经实现了你的代码,工作正常,如果我的问题符合条件,请放弃投票。谢谢
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;

public class JustTabActivity extends AppCompatActivity {

    private TabLayout tabLayout;
    private ViewPager parent_viewpager;
    ViewPagerAdapter pageAdapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.aaa_sms_layout);

        parent_viewpager = (ViewPager) findViewById(R.id.parent_viewpager);
        setupViewPager(parent_viewpager);

        tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(parent_viewpager);
        tabLayout.setFillViewport(true);
        parent_viewpager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
        tabLayout.setOnTabSelectedListener(onTabSelectedListener(parent_viewpager));
        setupTabIcons();
    }


    private void setupTabIcons() {
        int[] tabIcons = {R.drawable.icon1,R.drawable.icon5,R.drawable.ic_settings };

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

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

    }

    private void setupViewPager(ViewPager viewPager) {
        pageAdapter = new ViewPagerAdapter(getSupportFragmentManager());
        pageAdapter.addFrag(new fragment_home_new());
        pageAdapter.addFrag(new fragment_userprofile());
        pageAdapter.addFrag(new fragment_settings());
        parent_viewpager.setAdapter(pageAdapter);
    }


    class ViewPagerAdapter extends FragmentStatePagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }

        @Override
        public int getCount() {
            System.out.println(""+mFragmentList.size());
            return mFragmentList.size();
        }

        public void addFrag(Fragment fragment) {
            mFragmentList.add(fragment);

        }


        @Override
        public CharSequence getPageTitle(int position) {
            return null;
        }
    }

    private TabLayout.OnTabSelectedListener onTabSelectedListener(final ViewPager mPager) {
        return new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                mPager.setCurrentItem(tab.getPosition());
                tab.getIcon().setColorFilter(Color.parseColor("#018FFD"), PorterDuff.Mode.SRC_IN);
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
                tab.getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) { }
        };
    }
}
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabMode(TabLayout.MODE_FIXED);