如何在上下滚动时隐藏/显示视图?

7
如何在Android中像Foodpanda应用程序一样滚动时隐藏/显示视图

enter image description here

我希望在ScrollView上下滑动时隐藏/显示视图(线性或相对布局),就像上面的gif一样。

但我的应用程序不使用Recyclerview或list view(只是textview)。

我该如何创建它?

谢谢!


你正在寻找CoordinatorLayout。 - Karol Kulbaka
请查看以下链接: https://dev59.com/BrXna4cB1Zd3GeqPLHVf - A.Hosein
看这个链接,我在这里找到了答案:[https://dev59.com/BrXna4cB1Zd3GeqPLHVf] - A.Hosein
1个回答

10

将滚动监听器添加到RecyclerView

  1. 如果用户向下滚动-则开始向上平移动画

  2. 如果用户向上滚动-则开始向下平移动画

向上平移动画:-(trans_upwards.xml)

<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:fillAfter="true">

    <translate
        android:fromYDelta="0%p"
        android:toYDelta="100%p"
        android:duration="300"
         />

</set>

Anim向下翻译:(trans_downwards.xml)

<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:fillAfter="true">

    <translate
        android:fromYDelta="100%p"
        android:toYDelta="0%p"
        android:duration="300"
         />

</set>

给recyclerView添加滚动监听(并进行检查)

boolean check_ScrollingUp = false;
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
    super.onScrolled(recyclerView, dx, dy);
    if (dy > 0) {
        // Scrolling up
     if(check_ScrollingUp)
       {
          YourView.startAnimation(AnimationUtils.loadAnimation(context,R.anim.trans_downwards));
   check_ScrollingUp = false;
       }

    } else {
        // User scrolls down
         if(!check_ScrollingUp )
             {
                      YourView
                      .startAnimation(AnimationUtils
                      .loadAnimation(context,R.anim.trans_upwards));
   check_ScrollingUp = true;

               }
    }
 }

@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
    super.onScrollStateChanged(recyclerView, newState);

  }
});

我的应用程序不使用Recycler View T.T - f982

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接