gpt4 book ai didi

android - 滚动时只使用一次动画

转载 作者:太空狗 更新时间:2023-10-29 14:47:35 26 4
gpt4 key购买 nike

我在 Recycler View 下方有一个 fragment ,当向下滚动时, fragment 应该消失,当向上滚动时, fragment 应该重新出现

我实现了它,但问题是,当我向下滚动一点时,会出现 fragment 消失动画,当我进一步滚动时,它会重新出现并出现向下滑动动画,但我希望它保持隐藏状态,直到下一次向上滚动.

这是我的代码:

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

Log.d("newstate",newState+"");


}

@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
Log.d("dx",dx+"");
Log.d("dy",dy+"");

FragmentTransaction ft1 = getFragmentManager().beginTransaction();
ft1.setCustomAnimations(R.anim.entry, R.anim.exit);
ft1.show(bmfragment);
ft1.commit();
visibleItemCount = recyclerView.getChildCount();
totalItemCount = mLinearLayoutManager.getItemCount();
firstVisibleItem = mLinearLayoutManager.findFirstVisibleItemPosition();


if(dy<0) {

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.entry, R.anim.exit);
ft.show(bmfragment);
ft.commit();


}else if(firstVisibleItem>=1)
{

FragmentTransaction ft = getFragmentManager().beginTransaction();

ft.setCustomAnimations(0, R.anim.exit);
ft.hide(bmfragment);
ft.commit();


}




}
});

最佳答案

我明白了!我只是使用了一个标志变量

@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
Log.d("dx",dx+"");
Log.d("dy",dy+"");

if(flag==false) {
FragmentTransaction ft1 = getFragmentManager().beginTransaction();
ft1.setCustomAnimations(R.anim.entry, R.anim.exit);
ft1.show(bmfragment);
ft1.commit();
visibleItemCount = recyclerView.getChildCount();
totalItemCount = mLinearLayoutManager.getItemCount();
firstVisibleItem = mLinearLayoutManager.findFirstVisibleItemPosition();
}


if(dy<0) {

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.entry, R.anim.exit);
ft.show(bmfragment);
ft.commit();
flag = false;

}else if(firstVisibleItem>=1)
{
if(flag==false) {

FragmentTransaction ft = getFragmentManager().beginTransaction();

ft.setCustomAnimations(0, R.anim.exit);
ft.hide(bmfragment);
ft.commit();
flag=true;
}


}
Log.d("visibleItemCount",visibleItemCount+"");
Log.d("firstVisibleItem",firstVisibleItem+"");




}
});

关于android - 滚动时只使用一次动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38199465/

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