当我在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>
答案 0 :(得分:1)
动画会更改视图的绘制方式,但其真实位置仍保持不变。因此,尽管标头看上去已移动或被隐藏,但从技术上讲它仍然在那里。
要解决此问题,您可以:
设置EOT;
或
EOT;