gpt4 book ai didi

android - 有没有办法在 CollapsingToolBarLayout 中正确锚定 ImageView ?

转载 作者:行者123 更新时间:2023-11-30 01:29:01 24 4
gpt4 key购买 nike

我正在尝试将 ImageView 放在折叠工具栏的底部

我尝试用 ImageView 替换默认存在的 FloatingActionButton,结果如下

ImageView in place of FloatingActionButton

一开始看起来不错,但是当我向上滚动时会发生这种情况

ImageView when scrolling up

ImageView 不会像 FloatingActionButton 那样消失或折叠。

向上滚动时如何使 ImageView 消失?

这是我的布局

<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:fitsSystemWindows="true"
tools:context="com.example.kid.uimockup.UserProfileActivity">

<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:fitsSystemWindows="true"
android:layout_height="@dimen/app_bar_height"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">

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

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay"/>

<ImageView
android:src="@drawable/white"
android:scaleType="centerCrop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"
app:layout_collapseMode="parallax"
android:minHeight="100dp"/>

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

<include layout="@layout/content_user_profile"/>

//I want to anchor this
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_margin="7dp"
android:src="@drawable/breaking_bad"
app:layout_anchor="@id/app_bar"
app:layout_anchorGravity="bottom|end"/>

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

最佳答案

您需要的是 CoordinatorLayout.Behavior 的自定义实现.

我根据 FloatingActionButton 实现快速实现,用于在锚定到 AppBarLayout 时显示/隐藏。您可以看到 here 的代码.请注意包名称——您需要在该包中包含此名称才能使用 Behavior 中的一些 util 方法。

要将 Behavior 添加到您的 CircleImageView,您可以执行以下操作:

// your image view here
CircleImageView imageView = (CircleImageView) findViewById(R.id.circle_image_view);

CoordinatorLayout.LayoutParams params =
(CoordinatorLayout.LayoutParams) imageView.getLayoutParams();
params.setBehavior(new CircleImageViewBehavior());

现在,当您向上/向下滚动足够远时,CircleImageView 应该显示或隐藏。如果您想要像 FloatingActionButton 使用的动画,您可以查看该实现以创建类似的动画。

希望这对您有所帮助。

关于android - 有没有办法在 CollapsingToolBarLayout 中正确锚定 ImageView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36017112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com