片段选项卡未使用所有空间
Posted
技术标签:
【中文标题】片段选项卡未使用所有空间【英文标题】:Fragment Tabs not using all space 【发布时间】:2016-02-27 12:05:52 【问题描述】:我正在尝试按照本教程将我的活动应用程序转换为片段: http://www.exoguru.com/android/material-design/navigation/material-design-tabs-with-fragments 由于我将只使用两个选项卡,因此我对 BlankFragment 进行了此更改
public class BlankFragment extends Fragment
private PagerSlidingTabStrip tabs;
private static ViewPager viewPager;
private final int int_items = 2;
public BlankFragment() // Required empty public constructor
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
// Inflate the layout for this fragment
View x = inflater.inflate(R.layout.fragment_blank, container, false);
tabs = (PagerSlidingTabStrip) x.findViewById(R.id.tab_strip);
viewPager = (ViewPager) x.findViewById(R.id.viewpager);
viewPager.setAdapter(new MyAdapter(getChildFragmentManager()));
tabs.post(new Runnable()
@Override
public void run()
tabs.setViewPager(viewPager);
);
int[][] tabStates = new int[][]
new int[] android.R.attr.state_pressed, // enabled
new int[] android.R.attr.state_selected, // unchecked
new int[] -android.R.attr.state_selected
;
int[] tabColors = new int[] R.color.colorAccent,R.color.colorAccent,R.color.colorAccent;
ColorStateList tabList = new ColorStateList(tabStates, tabColors);
tabs.setTextColor(tabList); // Setting the Tab Text Color
return x;
public class MyAdapter extends FragmentPagerAdapter // Tab Adapter
public MyAdapter(FragmentManager fm) super(fm);
@Override
public Fragment getItem(int position)
switch (position)
case 0 : return new Tab1();
case 1 : return new Tab2();
return null;
@Override
public int getCount() return int_items;
@Override
public CharSequence getPageTitle(int position)
switch (position)
case 0 :
return "Temps ";
case 1 :
return "Vetement ";
return null;
问题是我得到了这个结果:
如您所见,标签文本并没有像这样使用所有空间: https://raw.githubusercontent.com/joseedwin84/Android-Sliding-Tabs-With-Material-Design/master/tabpic.png
那么我需要改变什么? 我试图检查布局,它们都设置为 match_parent 宽度。 所以现在我不知道去哪里找。 如果有人可以帮助我,那就太好了。
【问题讨论】:
将您的 TabLayout 的tabGravity
设置为 fill
,查看答案了解详情
【参考方案1】:
您必须将 TabLayout 的 tabGravity
设置为 fill
和 tabMode
设置为 fixed
。
xml
<android.support.design.widget.TabLayout
android:layout_
android:layout_
android:id="@+id/tabLayout"
app:tabGravity="fill"
app:tabMode="fixed" />
或者你可以在 java
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabMode(TabLayout.MODE_FIXED);
【讨论】:
谢谢,我没有使用 TabLayout,而是使用 PagerSlidingTabStrip,根据您的回答,我在文档中发现这是一个布局问题,我应该使用 app:shouldExpand="true"【参考方案2】:谢谢,我没有使用 TabLayout,而是使用 PagerSlidingTabStrip,根据您的回答,我在文档中发现这是一个布局问题,我应该使用 app:shouldExpand="true"
【讨论】:
以上是关于片段选项卡未使用所有空间的主要内容,如果未能解决你的问题,请参考以下文章
如果选项卡未处于活动状态,jqgrid 无法在 jquery-ui 选项卡下正确加载