【发布时间】:2018-11-08 06:07:46
【问题描述】:
对于下面的布局,当我在 viewpager 内的页面上向上滚动内容时...如果我将手指放在屏幕上并缓慢向上滚动,则选项卡布局不会折叠到工具栏中,但如果我一扔内容起来,确实如此。任何想法为什么?
activity_home.xml
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".newnav.home.HomeActivity">
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".newnav.NavigationActivity">
<!-- Check whether do we need this surface view still? -->
<SurfaceView
android:id="@+id/surfaceView"
android:layout_width="0dp"
android:layout_height="0dp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.my.package.view.MyToolBar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="@color/primary_color" />
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/toolbar" />
<com.my.package.view.SomeCustomView
android:id="@+id/breaking_news_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true" />
</RelativeLayout>
<com.my.package.navigation.NavigationLayout
android:id="@+id/navigation_layout"
android:layout_width="320dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@android:color/white"
android:fitsSystemWindows="true" />
</android.support.v4.widget.DrawerLayout>
</layout>
fragment_home.xml(父布局有工具栏):
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.design.widget.CoordinatorLayout
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:fitsSystemWindows="true"
app:layout_behavior="com.nbc.news.newnav.home.NbcTabBarScrollingBehavior">
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
style="@style/HomeTabDesign"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/top_nav_tab_bg"
app:tabBackground="@color/transparent"
android:elevation="4dp"
android:minHeight="@dimen/tab_layout_height"
app:layout_scrollFlags="scroll|enterAlways"
app:tabGravity="fill"
app:tabIndicatorColor="@color/home_tab_strip_color"
app:tabIndicatorHeight="3dp"
app:tabMaxWidth="0dp"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/home_tab_text_color_selected"
app:tabTextColor="@color/home_tab_text_color_normal" />
</android.support.design.widget.AppBarLayout>
<com.my.package.view.MyViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
</layout>
section_fragment.xml(滚动的视图):
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<com.my.package.view.ProgressiveFrameLayout
android:id="@+id/progressiveLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/divider_white"
app:contentLayoutId="@id/contentLayout">
<FrameLayout
android:id="@+id/contentLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/sectionRecyclerView"
android:layout_width="match_parent"
android:descendantFocusability="blocksDescendants"
android:layout_height="match_parent"
android:background="@android:color/white" />
</android.support.v4.widget.SwipeRefreshLayout>
<FrameLayout
android:id="@+id/adContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal" />
</FrameLayout>
</com.nbc.news.view.ProgressiveFrameLayout>
</layout>
【问题讨论】:
-
你应该在
TabLayout上定义app:layout_collapseMode。 -
@RowlandMtetezi 如果我在 tabLayout 上设置了 collapseMode,它根本不会折叠
-
你试过删除 android:fitsSystemWindows="true" 吗?
-
@ParaskevasNtsounos 是的,我有
-
@Onik 发生了很多自定义事件。简而言之,它是活动(具有工具栏)-> 父片段(具有选项卡布局和视图分页器)-> 子片段(x2)。在子片段中,我们有一个滑动刷新视图和一个回收器视图
标签: android android-layout android-tablayout android-coordinatorlayout android-appbarlayout