相关疑难解决方法(0)

将应用栏滚动视图行为添加到CoordinatorLayout中的多个视图

我希望将滚动支持添加到一个单独的,可滚动的,子视图CoordinatorLayout与an AppBarLayoutCollapsingToolbarLayout.滚动RecyclerViewAppBarLayout(下面的压缩代码)时,应用栏及其内容成功滚动和折叠.但是,当尝试在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

39
推荐指数
4
解决办法
7万
查看次数

值,值-v11和值-v14文件夹的样式和主题

我目前正在开发我的应用程序,将其设计基于Holo主题.在全球范围内我想要做的是工作,但我对工作文件夹的方式有点困惑values,values-v11并且values-v14.

所以我知道:

  • values 目标API低于11
  • values-v11 目标是11到13之间的API
  • values-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.

更一般地说,我的问题是,这三个文件夹是作为父母和孩子工作吗?意思是:

  • 如果该设备上的API版本> 13运行时,系统将加载values-v14然后values-v11,最后values.
  • 如果设备在11到13之间的API上运行,系统将加载values-v11然后values.
  • 如果设备运行的API版本<11,系统将仅加载values.

如果它确实是它的工作方式,那么在父文件夹中设置最大样式values并在v11或v14中只添加特定的样式是否有意义?

很抱歉这个很长的问题,我希望很清楚,这个主题/样式系统只在Android指南中简要描述,很难找到有关它如何工作的信息......

谢谢你的帮助!

android android-theme android-styles

30
推荐指数
1
解决办法
1万
查看次数

collapsingToolbarLayout仅在折叠时设置标题

我试图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标题设置为与我想要的另一个视图对齐...

android toolbar listener android-collapsingtoolbarlayout

4
推荐指数
2
解决办法
1万
查看次数