Android空白动画

时间:2018-11-08 09:45:20

标签: android animation

当我在recyclerview上滚动时,我尝试隐藏HEADER布局。为了隐藏布局,我在“ onScrolled”事件中使用了一个动画:

-显示:

layout.animate().translationY(-layout.getHeight()).setInterpolator(new AccelerateInterpolator(2));

-隐藏:

layout.animate().translationY(0).setInterpolator(new DecelerateInterpolator(2));

它以某种方式工作,但是我仍然在HEADER所在的空白处。

liste_view_layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical"
android:weightSum="1">

   <!-- HEADER -->
   <include layout="@layout/header_list_view" />

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

        <include layout="@layout/common_recyclerview_layout"/>
    </FrameLayout>
</LinearLayout>

header_list_view:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/header_list_view_layout_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:animateLayoutChanges="true"
>
  <TopBarHeaderView
  android:id="@+id/header_list_view_layout"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical">
       <FrameLayout
         android:id="@+id/subcategory_header_section"
         android:layout_width="match_parent"
         android:layout_height="wrap_content">
         <include layout="@layout/header_section"/>
       </FrameLayout>
    </TopBarHeaderView>
</LinearLayout>

Example layout :

1 个答案:

答案 0 :(得分:1)

动画会更改视图的绘制方式,但其真实位置仍保持不变。因此,尽管标头看上去已移动或被隐藏,但从技术上讲它仍然在那里。

要解决此问题,您可以:

设置EOT;

EOT;