2016-03-15 39 views
1

我试图把一个ImageView的一处倒塌的工具栏有没有办法在CollapsingToolBarLayout中正确地定位imageview?

我试图取代FloatingActionButton这是有默认与ImageView的和以下是结果的底部

ImageView in place of FloatingActionButton

它看起来不错,在第一,但是当我滚动出现这种情况

ImageView when scrolling up

的ImageView的不disappea或像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> 
+0

你可以分享你的代码? – Zaki

+0

@Zaki刚刚在布局代码中编辑 – kidustiliksew

回答

0

你需要的是一个CoordinatorLayout.Behavior的自定义实现。

我基于FloatingActionButton实现基于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这样的动画,则可以查看该实现来创建类似的动画。

希望这会有所帮助。

+0

不确定这是一个愚蠢的问题,但android.support.design.widget包的确切位置? – kidustiliksew

+0

您可以从项目的src/main/java'文件夹中自行创建包和文件。所以它的路径是'src/main/java/android/support/design/widget/CircleImageViewBehavior.java'。 –

0

变化

app:layout_scrollFlags="scroll|exitUntilCollapsed" 
Coordinatorlayout

app:layout_scrollFlags="scroll|enterAlwaysCollapsed" 
相关问题