刚刚升级到Android 7.0,我的所有SlidingTabLayout栏现在底部都有额外的空白区域。不确定这是否是Android团队的意图,但无论如何都要摆脱新的空白区域?
我使用Android提供的代码,可以在这里找到:
以下是我的布局代码片段:
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/tool_bar"
android:layout_height="56dp"
android:layout_width="match_parent"
android:background="@drawable/toolbar_gradient"
app:layout_scrollFlags="scroll|enterAlways"
android:theme="@style/Base.ThemeOverlay.AppCompat.Dark" />
<com.airsenze.wineinsider.controllers.SlidingTabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent">
</android.support.v4.view.ViewPager>
谢谢!如果您需要更多信息,请与我们联系。
答案 0 :(得分:15)
distributeEvenly
为真时会发生这种情况。只需评论
lp.width = 0;
在populateTabStrip()
课程的SlidingTabLayout.java
方法中,您的问题就会得到解决。
答案 1 :(得分:0)
您的组件样式文件是否已声明
--<item name="android:windowIsFloating">false</item>--
我只是发现了与BottomDialog类似的错误,我删除了
--<item name="android:windowIsFloating">false</item>--
我的组件样式文件中的这一行,否则该组件将显示在真实底部上方30dp。 我想你应该查看这个文件:
android:theme="@style/AppTheme.AppBarOverlay"
逐个删除项目以查找哪个项目可以解决此错误。
答案 2 :(得分:0)
我认为它不会对您有用,但仍会在您的布局中尝试这一点。设置自定义高度(48dp)并为牛轧糖设置条件。不幸的是,它对我有用:)。
<com.airsenze.wineinsider.controllers.SlidingTabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@color/white"/>
答案 3 :(得分:0)
您应该将最大线数设置为1以选项卡的TextView。
有两种方法:
<强> 1。更改SlidingTabLayout:
protected TextView createDefaultTabView(Context context) {
TextView textView = new TextView(context);
textView.setMaxLines(1);
...
}
<强> 2。使用自定义标签布局
例如:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="8dp"
android:paddingTop="8dp">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="true"
android:textColor="@color/text_tab"
android:maxLines="1" <=============attention==============
android:textSize="12dp"
android:textStyle="bold"/>
</LinearLayout>
答案 4 :(得分:0)
阿夫申给出了一个很好的答案。我遇到过一些API低于25的问题。这可能是较晚的答案,但可能会对某人有所帮助。
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
lp.weight = 1;
}else{
lp.width = 0;
lp.weight = 1;
}