Android 滑动布局压缩选项卡文本

Android 滑动布局压缩选项卡文本,android,android-toolbar,Android,Android Toolbar,我正在使用slidengtablayout.java和slidengtabstrip.java文件以及工具栏来创建可切换选项卡 我现在学习了两个不同的教程,在如何显示选项卡方面遇到了相同的问题。我将setDistributeEvenly设置为true,并将代码更改为具有四个字符串,而不是3个字符串。现在,我选项卡中的文本正在压缩,而不是将宽度设置为最大字符串值,并允许在纵向模式下滑动时溢出。在景观中,这个问题并不存在。vs 如果我删除了一个字符串,问题就解决了,如果我添加了另一个字符串,允许溢出

我正在使用slidengtablayout.java和slidengtabstrip.java文件以及工具栏来创建可切换选项卡

我现在学习了两个不同的教程,在如何显示选项卡方面遇到了相同的问题。我将setDistributeEvenly设置为true,并将代码更改为具有四个字符串,而不是3个字符串。现在,我选项卡中的文本正在压缩,而不是将宽度设置为最大字符串值,并允许在纵向模式下滑动时溢出。在景观中,这个问题并不存在。vs

如果我删除了一个字符串,问题就解决了,如果我添加了另一个字符串,允许溢出,但它不再均匀地设置宽度,但在横向环境中仍然可以正常工作

我的理论是,在给定文本长度的情况下,我的四个标签的计算宽度,对于我的屏幕大小来说,达到了一个奇怪的“最佳”点。它太大,无法在一个屏幕上容纳自己,但它不够大,无法触发溢出

MainActivity.java

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

Toolbar appToolbar = (Toolbar) findViewById(R.id.square_toolbar);   //creates instance of app_toolbar to serve as actionbar
//setting toolbar to actionbar
setSupportActionBar(appToolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false); //do not have app_toolbar Title

// Get the ViewPager and set it's PagerAdapter so that it can display items
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(new TabFragmentPagerAdapter(getSupportFragmentManager(), TheSquare.this));

//Give slidingTabLayout ViewPager
SlidingTabLayout slidingTabLayout = (SlidingTabLayout) findViewById(R.id.tabs);
//Center the tabs in the layout
 slidingTabLayout.setDistributeEvenly(true);



slidingTabLayout.setCustomTabColorizer(new SlidingTabLayout.TabColorizer(){
    @Override
    public int getIndicatorColor(int position){
        return getResources().getColor(R.color.green);
    }
});

slidingTabLayout.setViewPager(viewPager);

}
选项卡FragmentPageRadapter.java

public class TabFragmentPagerAdapter extends FragmentPagerAdapter {
final int PAGE_COUNT = 4;
private String tabTitles[] = new String[] { "Featured", "News", "Sports", "Life"};
private Context context;

public TabFragmentPagerAdapter(FragmentManager fm, Context context) {
    super(fm);
    this.context = context;
}


@Override
public Fragment getItem(int position) {
    return PageFragment.newInstance(position + 1);
}
@Override
public int getCount() {
    return PAGE_COUNT;
}
@Override
public CharSequence getPageTitle(int position) {
    // Generate title based on item position
    return tabTitles[position];
}
}
main_activity.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:background="@color/white"
          android:orientation="vertical">

<include
    android:id="@+id/square_toolbar"
    layout="@layout/app_toolbar"/>

<com.squareoffs.squareoffs.SlidingTabs.SlidingTabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="0px"
    android:layout_weight="1"
    android:background="@android:color/white"/>


我有点没有想法去测试,谢谢你的帮助。

除了我上面的理论之外,我无法解决问题的“原因”,但我在每个字符串中添加了空格(“News”到“News”),所以它们的长度相等,至少在这个特殊情况下,它解决了问题。这不是一个理想的解决方案,因为如果我希望文本占据相等的空间,我必须减少填充,以确保选项卡中的所有内容看起来都相似,但至少它可以正确显示