我希望将滚动支持添加到一个单独的,可滚动的,子视图CoordinatorLayout与an AppBarLayout和CollapsingToolbarLayout.滚动RecyclerView或AppBarLayout(下面的压缩代码)时,应用栏及其内容成功滚动和折叠.但是,当尝试在LinearLayout上面启动滚动事件时RecyclerView,没有任何反应,因为LinearLayout不知道滚动或折叠视图.
我们的目标是将该LinearLayout行为作为一个粘性页眉,并且RecyclerView与该页脚AppBarLayout接收相同的滚动行为RecyclerView,类似于Spotify的随机播放/可用离线标题.事实上,如果appbar_scrolling_view_behavior layout_behavior可以应用于LinearLayout类似的,那将是很好的RecyclerView,但我想在不可滚动的视图上忽略了该行为.是否有人知道这种解决方法,不需要将LinearLayout视图作为一行实现RecyclerView?
<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:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="@dimen/collapsible_app_bar_height"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/gradient_banner"
app:contentScrim="@color/background_content_frame"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/image_header"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/some_image"
app:layout_collapseMode="parallax"/>
<android.support.v7.widget.Toolbar
android:id="@+id/collapsible_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/slide_handle_height"
android:orientation="horizontal"
android:background="@color/slide_handle"
android:gravity="center_vertical">
<!-- three buttons …Run Code Online (Sandbox Code Playgroud) android androiddesignsupport android-coordinatorlayout android-collapsingtoolbarlayout android-appbarlayout
我目前正在开发我的应用程序,将其设计基于Holo主题.在全球范围内我想要做的是工作,但我对工作文件夹的方式有点困惑values,values-v11并且values-v14.
所以我知道:
values 目标API低于11values-v11 目标是11到13之间的APIvalues-v14 目标API优于13起初我以为我必须为每个文件夹指定应用程序所需的所有样式,但后来我意识到了一种继承系统.
我的问题是我真的很困惑,并且不清楚如何在这3个文件夹之间进行这种继承.
我做了以下测试,以便查看手机上的行为(在Android 4.0上运行,因此该文件夹values-v14应该是加载的文件夹):
在values我有一个样式设置为蓝色文本颜色:
<style name="TextMedium" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/Blue</item>
Run Code Online (Sandbox Code Playgroud)
在values-v11我有一个样式设置为白色文本颜色:
<style name="TextMedium" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/White</item>
Run Code Online (Sandbox Code Playgroud)
在values-v14我有一个样式设置为红色文本颜色:
<style name="TextMedium" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/Red</item>
Run Code Online (Sandbox Code Playgroud)
对于上面的第一种情况(每个文件夹具有不同的颜色),我的文本上加载的颜色为红色,表示values-v14文件夹获得优先级.
然后,如果我从values-v14文件夹中注释掉红色样式,则文本变为白色.这是否意味着values-v11即使设备定位到values-v14文件夹,系统也会采用文件夹中的样式?我认为它可能values默认使用该文件夹但不是values-v11.
更一般地说,我的问题是,这三个文件夹是作为父母和孩子工作吗?意思是:
values-v14然后values-v11,最后values.values-v11然后values.values.如果它确实是它的工作方式,那么在父文件夹中设置最大样式values并在v11或v14中只添加特定的样式是否有意义?
很抱歉这个很长的问题,我希望很清楚,这个主题/样式系统只在Android指南中简要描述,很难找到有关它如何工作的信息......
谢谢你的帮助!
我试图collapsingToolbarLayout只在崩溃时设置标题
为此我设置:
app:expandedTitleTextAppearance="@android:color/transparent"
Run Code Online (Sandbox Code Playgroud)
它运作良好.
但是在4.2.2应用程序崩溃时跟随Log
STACK_TRACE
java.lang.IllegalArgumentException: width and height must be > 0
at android.graphics.Bitmap.createBitmap(Bitmap.java:687)
at android.graphics.Bitmap.createBitmap(Bitmap.java:666)
at android.graphics.Bitmap.createBitmap(Bitmap.java:633)
at android.support.design.widget.CollapsingTextHelper.ensureExpandedTexture(CollapsingTextHelper.java:405)
at android.support.design.widget.CollapsingTextHelper.setInterpolatedTextSize(CollapsingTextHelper.java:382)
at android.support.design.widget.CollapsingTextHelper.calculateOffsets(CollapsingTextHelper.java:227)
at android.support.design.widget.CollapsingTextHelper.setExpansionFraction(CollapsingTextHelper.java:203)
at android.support.design.widget.CollapsingToolbarLayout$OffsetUpdateListener.onOffsetChanged(CollapsingToolbarLayout.java:754)
at android.support.design.widget.AppBarLayout$Behavior.dispatchOffsetUpdates(AppBarLayout.java:851)
at android.support.design.widget.AppBarLayout$Behavior.setAppBarTopBottomOffset(AppBarLayout.java:834)
at android.support.design.widget.AppBarLayout$Behavior.scroll(AppBarLayout.java:793)
at android.support.design.widget.AppBarLayout$Behavior.onNestedScroll(AppBarLayout.java:644)
at android.support.design.widget.AppBarLayout$Behavior.onNestedScroll(AppBarLayout.java:583)
at android.support.design.widget.CoordinatorLayout.onNestedScroll(CoordinatorLayout.java:1428)
at android.support.v4.view.eh.a(ViewParentCompat.java:97)
at android.support.v4.view.ec.a(ViewParentCompat.java:330)
at android.support.v4.view.bk.a(NestedScrollingChildHelper.java:162)
at android.support.v7.widget.RecyclerView.dispatchNestedScroll(RecyclerView.java:8306)
at android.support.v7.widget.RecyclerView.scrollByInternal(RecyclerView.java:1387)
at android.support.v7.widget.RecyclerView.onTouchEvent(RecyclerView.java:2209)
Run Code Online (Sandbox Code Playgroud)
请建议我实施它的正确方法.
要么
有没有Listener检测是否collapsingToolbarLayout 崩溃所以我可以隐藏/取消隐藏ToolBar标题...
要么
是否可以将collapsingToolbarLayout标题设置为与我想要的另一个视图对齐...