【问题标题】:How to make imageView go out as collapsingtoolbar reach at certain height如何使 imageView 在 collapsingtoolbar 达到一定高度时熄灭
【发布时间】:2017-08-10 17:09:19
【问题描述】:

我做了这个布局有滚动工具栏,如果我可以让 imageview 淡出效果会很好,它放置在折叠工具栏和坐标布局之间,如左侧手机图像中的黄色收藏按钮,在哪个图像中添加 xml正在折叠工具栏移动,但只是在工具栏上消失,不完整

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:fitsSystemWindows="true">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginStart="48dp"
        app:expandedTitleMarginEnd="64dp"
        android:fitsSystemWindows="true">

        <ImageView
            android:id="@+id/backdrop"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop"
            android:fitsSystemWindows="true"
            app:layout_collapseMode="parallax"/>

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
           />
    </android.support.design.widget.CollapsingToolbarLayout>

</android.support.design.widget.AppBarLayout>

<android.support.v4.widget.NestedScrollView
    android:id="@+id/scroll"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clipToPadding="false"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv"
            android:textSize="22sp"
            />
    </FrameLayout>

</android.support.v4.widget.NestedScrollView>


<ImageView
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:id="@+id/iv_poster"
    app:layout_anchor="@+id/app_bar_layout"
    app:layout_anchorGravity="bottom"
    />

</android.support.design.widget.CoordinatorLayout>

只有图片的上半部分消失了

【问题讨论】:

  • 试试这个app:scrimVisibleHeightTrigger="your_height"
  • 以及如何像附加图片一样放置图片
  • 我不明白你对我的要求是什么代码正在显示图像湖附加图像,你能更好地解释你想要什么吗?
  • 我想在我发布的图片附件中放置 imageView 之类的黄色收藏按钮
  • 所以我将使用您需要的代码创建一个答案,因为代码太大而无法放在一个评论中。

标签: java android android-toolbar android-coordinatorlayout android-collapsingtoolbarlayout


【解决方案1】:

所以,就像我们在 cmets 中讨论的主要问题一样,您可以使用这个:

app:scrimVisibleHeightTrigger="your_height"

对于您提出的第二个问题,您可以这样做:

<android.support.design.widget.FloatingActionButton

        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        app:layout_anchor="@id/appbar"
        app:layout_anchorGravity="bottom|right|end"
        android:src="@drawable/your_icon"
        android:layout_margin="16dp"
        android:clickable="true"/>

所以最终的代码是这样的:

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="256dp"
    android:fitsSystemWindows="true">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_scrollFlags="scroll|enterAlwaysCollapsed"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginStart="48dp"
        app:expandedTitleMarginEnd="64dp"
        app:scrimVisibleHeightTrigger="your_height">

        <ImageView
            android:id="@+id/backdrop"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:fitsSystemWindows="true"
            app:layout_collapseMode="parallax" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:background="?attr/colorPrimary"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"/>

    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

<android.support.design.widget.FloatingActionButton

        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        app:layout_anchor="@id/appbar"
        app:layout_anchorGravity="bottom|right|end"
        android:src="@drawable/your_icon"
        android:layout_margin="16dp"
        android:clickable="true"/>
</android.support.design.widget.CoordinatorLayout>

【讨论】:

  • 小问题,当我在折叠工具栏中使用 app:layout_scrollFlags="scroll|enterAlwaysCollapsed" 代替 app:layout_scrollFlags="scroll|exitUntilCollapsed" 时,工具栏的固定滚动模式消失了,工具栏消失了带有折叠工具栏,但是当 app:layout_scrollFlags="scroll|exitUntilCollapsed" 工具栏保持其位置并且不会随着滚动工具栏消失,为什么?
  • 因为 scroll|enterAlwaysCollapsed 意味着滚动 collapsingToolbar 完全包含工具栏,当用户向后滚动时工具栏首先显示,当用户到达顶部时图像滚动到您可以阅读本文以更好地理解 scrollFlags。 guides.codepath.com/android/…
  • 随着您的代码图像视图随着折叠工具栏移动,但并没有完全消失,只有被折叠工具栏覆盖的部分
  • 您能添加一张图片以便更好地理解吗?
  • 更新了我的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-25
  • 1970-01-01
相关资源
最近更新 更多