建一个在线商城网站,wordpress的主题文件夹,万网域名指向网站,做网站赔了8万CoordinatorLayout 官方文档 CoordinatorLayout 是一个加强型的FrameLayout. CoordinatorLayout 主要用于两种场景: 作为activity最外层布局 作为协调一个或多个具有特定交互的子view的父布局 子view之间的特定协调动作#xff0c;通过app:layout_behavior指定#xff0c;如…CoordinatorLayout 官方文档 CoordinatorLayout 是一个加强型的FrameLayout. CoordinatorLayout 主要用于两种场景: 作为activity最外层布局 作为协调一个或多个具有特定交互的子view的父布局 子view之间的特定协调动作通过app:layout_behavior指定如Google内部实现的string/appbar_scrolling_view_behavior 亦可以通过自定义实现特定的behavior效果TODO 单独作为另外一篇文章。 android.support.v4.widget.NestedScrollViewandroid:idid/nest_viewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentapp:layout_behaviorstring/appbar_scrolling_view_behavior
复制代码AppBarLayout 符合material design的加强版的垂直方向的LinearLayout严重依赖于CoordinatorLayout内部内置了响应动作用于定义当某个可滑动的View如ScrollView ,ListView ,RecyclerView 等发生滑动时其他子view应该如何响应。app:layout_scrollFlags android.support.design.widget.AppBarLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid.support.v7.widget.Toolbarandroid:idid/toolbarandroid:layout_widthmatch_parentandroid:layout_height200dpandroid:minHeight?attr/actionBarSizeandroid:themestyle/ThemeOverlay.AppCompat.Dark.ActionBarapp:titlebehaviourapp:layout_scrollFlagsscroll|exitUntilCollapsed|enterAlways|snap/android.support.v7.widget.Toolbar/android.support.design.widget.AppBarLayout
复制代码1.appbarLayout几个方法 addOnOffsetChangedListener 当AppbarLayout 的偏移发生改变的时候回调也就是子View滑动。 getTotalScrollRange 返回AppbarLayout 所有子View的滑动范围 removeOnOffsetChangedListener 移除监听器 setExpanded (boolean expanded, boolean animate)设置AppbarLayout 是展开状态还是折叠状态animate 参数控制切换到新的状态时是否需要动画 setExpanded (boolean expanded) 设置AppbarLayout 是展开状态还是折叠状态,默认有动画 AppBarLayout的ScrollFlg 注:滑动的NestedScrollView简称 滑动view设置了scorllFlag的子view简称 响应view 1.scorll app:layout_scrollFlagsscroll 响应view相当于滑动view 的一部分一起滑动。 2.enterAlways app:layout_scrollFlagsscroll|enterAlways 结合scroll一起使用。当滑动view 向下滑动时响应view截断滑动view的滑动事件待响应view自身全部显示完后再把滑动事件还给滑动view 当用户向下滑动是scrollView时关注点不在滑动view本身此时出现响应view的内容符合material design设计理念 3.enterAlwaysCollapsed ...
android:layout_height200dp
android:minHeight?attr/actionBarSize
app:layout_scrollFlagsscroll|enterAlways|enterAlwaysCollapsed
...
复制代码 结合scroll和enterAlways一起使用。可理解为enterAlways的更灵活的版本可通过android:minHeight?attr/actionBarSize设置最小高度当滑动view 向下滑动时响应view截断滑动view的滑动事件待响应view自身最小高度显示完后再把滑动事件还给滑动view 4.snap ...
android:layout_height200dp
android:minHeight?attr/actionBarSize
app:layout_scrollFlagsscroll|enterAlways|snap
...
复制代码 结合scroll一起使用。可理解为四舍五入的效果当停止滑动时响应view如果已显示了一大部分则自动弹性滑动显示剩余的部分若显示的部分很少则自动收起隐藏 5.exitUntilCollapsed ...
android:layout_height200dp
android:minHeight?attr/actionBarSize
app:layout_scrollFlagsscroll|exitUntilCollapsed
...
复制代码 结合scroll一起使用。可理解为enterAlways的相反的效果可通过android:minHeight?attr/actionBarSize设置最小高度当滑动view 向上滑动时响应view截断滑动view的滑动事件待响应view缩到自身最小高度显示完后再把滑动事件还给滑动view CollapsingToolbarLayout 折叠式标题栏丰富toolbar的效果必须作为appbarLayout的直接子布局 1.parallax 有视觉效果的滚动app:layout_collapseModeparallax 2.pin 子view固定app:layout_collapseModepin android.support.design.widget.AppBarLayoutandroid:idid/appbarandroid:fitsSystemWindowstrueandroid:layout_widthmatch_parentandroid:layout_height250dp!--丰富效果的toolbar--!--app:contentScrim 折叠后的背景色即toolbar颜色--!--app:statusBarScrim 折叠后的statusBar背景色--android.support.design.widget.CollapsingToolbarLayoutandroid:idid/collapse_layoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:fitsSystemWindowstrueandroid:themestyle/ThemeOverlay.AppCompat.Dark.ActionBarapp:contentScrimcolor/colorPrimaryapp:expandedTitleGravitycenter|bottomapp:expandedTitleTextAppearancestyle/PersonDetail.TitleExpandThemeapp:collapsedTitleGravitystartapp:collapsedTitleTextAppearancestyle/PersonDetail.TitleCollapsedThemeapp:layout_scrollFlagsscroll|exitUntilCollapsed!--app:layout_collapseModeparallax 折叠过程产生一点偏移--!--android:fitsSystemWindowstrue,伸到statusBar但需要新建style将statusBar颜色改为透明--!--一直到最外层都需要调用android:fitsSystemWindowstrue--ImageViewandroid:idid/person_portraitandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:fitsSystemWindowstrueapp:layout_collapseModeparallax/android.support.v7.widget.Toolbarandroid:idid/toolbarandroid:layout_widthmatch_parentandroid:layout_height?attr/actionBarSizeapp:titleappapp:layout_collapseModepin/android.support.v7.widget.Toolbar/android.support.design.widget.CollapsingToolbarLayout/android.support.design.widget.AppBarLayout
复制代码3.设置标题 Java 中设置// 设置标题CollapsingToolbarLayout collapsingToolbarLayout findViewById(R.id.collapse_layout);collapsingToolbarLayout.setTitle(This is Tom);复制代码xml设置 app:titleJohn4.contentScrim app:contentScrim当CollapsingToolbarLayout滑动到一个确定的阀值时将显示或者隐藏内容纱布可以通过setContentScrim(Drawable)来设置纱布的图片。可以时图片也可以是颜色 5.statusScrim 当CollapsingToolbarLayout滑动到一个确定的阀值时状态栏显示或隐藏纱布你可以通过 app:statusBarScrim或者setStatusBarScrim(Drawable)来设置纱布图片。可以时图片也可以是 颜色 6. app:expandedTitleXXX和app:collapsedTitleXXX expandedTitleXXX设置展开时的文字风格布局 app:collapsedTitleXXX设置收缩时的文字风格布局 ...
app:expandedTitleGravitycenter|bottom
app:expandedTitleTextAppearancestyle/PersonDetail.TitleExpandTheme
app:collapsedTitleGravitystart
app:collapsedTitleTextAppearancestyle/PersonDetail.TitleCollapsedTheme
...
复制代码!--折叠时为黑色靠右--
style namePersonDetail.TitleCollapsedTheme parentTextAppearance.Widget.AppCompat.Toolbar.Titleitem nameandroid:textColor#000/item
/style!--展开时为白色居中向下--
style namePersonDetail.TitleExpandTheme parentTextAppearance.Widget.AppCompat.Toolbar.Titleitem nameandroid:textColor#eee/item
/style
复制代码 参考链接 Material.ioMaterial Design之 AppbarLayout CoordinatorLayout的使用如此简单