CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+ViewPager滑动效果,以及代码处理是否推动效果

来源:互联网 发布:势不可挡网络剧百度云 编辑:程序博客网 时间:2024/06/08 16:46

布局文件

<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_video_detail"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="exle.li_yuweii.superapp.activitys.VideoDetailActivity">    <android.support.design.widget.AppBarLayout        android:fitsSystemWindows="true"        android:id="@+id/video_detail_appbar"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="#ffff"        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">        <!--可以收放 ToolBar的布局-->        <!--设置标题需要调用CollapsingToolbarLayout的 setTitle-->        <!--使用ContentScrim 可以指定颜色 图片 当收起来的时候,切换成指定的内容-->        <!--scrimVisibleHeightTrigger当收起多少距离的时候显示contentScrim-->        <android.support.design.widget.CollapsingToolbarLayout            android:fitsSystemWindows="true"            android:id="@+id/video_detail_collapsing"            android:layout_width="match_parent"            android:layout_height="200dp"            app:contentScrim="#FB7299"            app:layout_scrollFlags="scroll|exitUntilCollapsed"            >            <!--app:scrimVisibleHeightTrigger="50dp"-->            <FrameLayout                android:id="@+id/video_detail_fragment"                android:layout_width="match_parent"                android:layout_height="wrap_content">                <SurfaceView                    android:id="@+id/video_detail_surface_view"                    android:layout_width="match_parent"                    android:layout_height="200dp"                    android:visibility="invisible" />                <LinearLayout                    android:id="@+id/video_detail_play_view"                    android:layout_width="match_parent"                    android:layout_height="wrap_content"                    android:layout_gravity="bottom"                    android:background="#9999"                    android:gravity="center_vertical"                    android:orientation="horizontal"                    android:visibility="invisible">                    <ImageView                        android:id="@+id/video_controller_play"                        android:layout_width="wrap_content"                        android:layout_height="wrap_content"                        android:src="@android:drawable/ic_media_pause" />                    <SeekBar                        android:id="@+id/video_controller_progress"                        android:layout_width="0dp"                        android:layout_height="wrap_content"                        android:layout_weight="1" />                    <TextView                        android:id="@+id/video_controller_time"                        android:layout_width="wrap_content"                        android:layout_height="wrap_content"                        android:text="00:00" />                    <ImageView                        android:id="@+id/video_controller_orientation_switch"                        android:layout_width="20dp"                        android:layout_height="20dp"                        android:paddingLeft="3dp"                        android:src="@drawable/change" />                </LinearLayout>            </FrameLayout>            <ImageView                android:fitsSystemWindows="true"                android:id="@+id/video_detail_cover"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:adjustViewBounds="true"                android:scaleType="fitXY" />                <!--app:layout_collapseMode="parallax" />-->            <android.support.v7.widget.Toolbar                android:id="@+id/video_detail_tool_bar"                android:layout_width="match_parent"                android:layout_height="?actionBarSize"                app:layout_collapseMode="pin">                <ImageView                    android:id="@+id/video_detail_iamge1"                    android:src="@drawable/action_button_back_pressed_light"                    android:layout_width="wrap_content"                    android:layout_height="22dp" />                <LinearLayout                    android:orientation="horizontal"                    android:layout_width="match_parent"                    android:layout_height="match_parent">                    <TextView                        android:id="@+id/video_detail_text1"                        android:text="SuperApp"                        android:gravity="center"                        android:layout_width="wrap_content"                        android:layout_height="match_parent" />                    <ImageView                        android:id="@+id/video_detail_image"                        android:src="@drawable/ic_tv_play"                        android:adjustViewBounds="true"                        android:visibility="invisible"                        android:layout_width="wrap_content"                        android:layout_gravity="center"                        android:layout_height="22dp" />                    <TextView                        android:id="@+id/video_detail_text"                        android:visibility="invisible"                        android:text="立即播放"                        android:layout_width="wrap_content"                        android:layout_height="wrap_content" />                </LinearLayout>            </android.support.v7.widget.Toolbar>        </android.support.design.widget.CollapsingToolbarLayout>        <!--Tab 简介和评论-->    </android.support.design.widget.AppBarLayout>    <android.support.design.widget.FloatingActionButton        android:id="@+id/video_detail_play_fab"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginRight="16dp"        app:layout_anchor="@id/video_detail_appbar"        app:layout_anchorGravity="right|bottom" />    <!--layut_behavior 用于处理 当前控件滚动的时候,怎么处理其他控件-->    <!--TODO:检查在ViewPager中使用,能否滚动Toolbar-->    <LinearLayout        android:id="@+id/video_detail_linear_layout"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:orientation="vertical"        app:layout_behavior="@string/appbar_scrolling_view_behavior">        <android.support.design.widget.TabLayout            android:id="@+id/video_detail_tab_layout"            android:layout_width="150dp"            android:layout_height="wrap_content"            app:tabSelectedTextColor="@color/topColor"            app:layout_behavior="@string/appbar_scrolling_view_behavior"            android:layout_gravity="bottom"            app:tabTextColor="#000"/>        <android.support.v4.view.ViewPager            android:id="@+id/video_detail_view_pager"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:overScrollMode="never" />    </LinearLayout>    <!--<android.support.v4.widget.NestedScrollView-->    <!--android:layout_width="match_parent"-->    <!--android:layout_height="match_parent"-->    <!--app:layout_behavior="@string/appbar_scrolling_view_behavior">-->    <!--<LinearLayout-->    <!--android:layout_width="match_parent"-->    <!--android:layout_height="match_parent"-->    <!--android:orientation="vertical">-->    <!--</LinearLayout>-->    <!--</android.support.v4.widget.NestedScrollView>--></android.support.design.widget.CoordinatorLayout>
  app:layout_scrollFlags="scroll|exitUntilCollapsed"

这个设置推到上边toolbar在上边保留

  android:fitsSystemWindows="true"

这个设置沉浸效果设置顶部状态栏时

app:layout_anchor="@id/video_detail_appbar"

FloatingActionButton必须绑定到AppBar上才可以推上去消失

 app:layout_behavior="@string/appbar_scrolling_view_behavior"

AppBar下方的控件要设置这个属性才可以联动

代码里设置推动效果

//设置不可推动 layoutParams = (AppBarLayout.LayoutParams) collapsing.getLayoutParams();       int scrollFlags = layoutParams.getScrollFlags();        layoutParams.setScrollFlags(0);
//设置可以推动layoutParams = (AppBarLayout.LayoutParams) collapsing.getLayoutParams();  layoutParams.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL                                | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);      collapsing.setLayoutParams(layoutParams);//这句必须加上
0 0
原创粉丝点击