SlidingTabLayout 底部填充

Posted

技术标签:

【中文标题】SlidingTabLayout 底部填充【英文标题】:SlidingTabLayout bottom padding 【发布时间】:2015-02-05 09:53:47 【问题描述】:

我面临的问题是我的 SlidingTabLayout 中有一种填充。

这是截图

如您所见,背景来自底部的滑块。最近,使用 pagertabstrip 库,我没有看到,但现在我尝试了新的 com.example.android.common.view.SlidingTabLayout 它肯定存在。如何删除此填充?

谢谢

hiere 是 xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_
    android:layout_>

    <com.example.android.common.view.SlidingTabLayout
        android:id="@+id/lib_tabs"
        android:layout_
        android:layout_
        android:background="@android:color/holo_green_light"
         />

    <android.support.v4.view.ViewPager
        android:id="@+id/lib_pager"
        android:layout_
        android:layout_
        android:layout_weight="1" />
</LinearLayout>

风格

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="windowActionBar">false</item>
        <item name="colorPrimary">@color/my_action_bar_color</item>
    </style>

    <style name="ToolBarStyle" parent="">
        <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
        <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>

    </style>

片段

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) 
        View view = inflater.inflate(R.layout.lib_tabs, null);

        mViewPager = (ViewPager) view.findViewById(R.id.lib_pager);
        mViewPager.setAdapter(new CustomPagerAdapter(this.getFragmentManager()));

        mSlidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.lib_tabs);
        mSlidingTabLayout.setViewPager(mViewPager);

        return view;
    

    public class CustomPagerAdapter extends FragmentPagerAdapter 

        private final String[] TITLES = "Categories", "Home", "Top";

        public CustomPagerAdapter(FragmentManager fm) 
            super(fm);
        

        @Override
        public CharSequence getPageTitle(int position) 
            return TITLES[position];
        

        @Override
        public int getCount() 
            return TITLES.length;
        

        @Override
        public android.support.v4.app.Fragment getItem(int position) 
            return LibSimpleInstanceableFragment.newInstance();
        
    

【问题讨论】:

【参考方案1】:

distributeEvenlytrue 时会发生这种情况。随便评论

lp.width = 0;

SlidingTabLayout.java 类的populateTabStrip() 方法中,您的问题将得到解决。

【讨论】:

这应该是认可的答案!【参考方案2】:

将高度更改为 wrap_content:

<com.example.android.common.view.SlidingTabLayout
        android:id="@+id/lib_tabs"
        android:layout_
        android:layout_
        android:background="@android:color/holo_green_light"
         />

【讨论】:

【参考方案3】:
    找到并打开SlidingTabStrip.java(必须在 com/example/android/common/view/)

    根据需要编辑以下值

    私有静态最终 int DEFAULT_BOTTOM_BORDER_THICKNESS_DIPS = 0; 私有静态最终字节 DEFAULT_BOTTOM_BORDER_COLOR_ALPHA = 0x26;

    你欠我一杯酒!

【讨论】:

【参考方案4】:

移除 SlidingTabLayout 上的 minHeight

【讨论】:

以上是关于SlidingTabLayout 底部填充的主要内容,如果未能解决你的问题,请参考以下文章

SlidingTabLayout 以适应屏幕

将图标添加到 SlidingTabLayout 而不是文本

带有图标的 Android SlidingTabLayout

SlidingTabLayout 下方的 SlidingTabStrip 指示器

带有 SlidingTabLayout 的 ViewPager 中的 Listview - 高度问题

Align-Center SlidingTabLayout