gpt4 book ai didi

android - OnSwipe 方法在 RecyclerView 中不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 09:31:42 25 4
gpt4 key购买 nike

我正在开发一款播放音频文件的应用程序。创建了一个带有 2 个选项卡的选项卡布局。在它们中都使用了 fragment ,在它们中都使用了 RecyclerView。名为 LibraryFragment 的 fragment 有这个 RecycleView,当 Swipped 时,它的项目必须传递给 HomeFragment,这就是我想要做的。 但是即使滑动动画正在发生,OnSwipe 方法也根本不起作用。

这是我用来为 LibraryFragment 下的 recyclerview 项目提供滑动功能的方法。在 OnCreateView 方法下,我调用了这个 initSwipe() 方法。

 private void initSwipe(){
ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT ) {


private boolean swipeBack = false;
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
return false;
}

@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
int position = viewHolder.getAdapterPosition();

if (direction == ItemTouchHelper.LEFT){
HomeFragment.audioList.clear();
HomeFragment.audioList.add(audioList.get(position));
HomeFragment.libraryAdapter.notifyDataSetChanged();
Log.e(TAG, "onSwiped: " );
}
}


@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView,
RecyclerView.ViewHolder viewHolder, float dX, float dY,
int actionState, boolean isCurrentlyActive) {
recyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event)
{
if(event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL)
{
swipeBack = true;
}
else
{
swipeBack = false;
}
return false;
}

});
super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
}

@Override
public int convertToAbsoluteDirection(int flags, int layoutDirection) {
int value = swipeBack ? 0 : super.convertToAbsoluteDirection(flags, layoutDirection);
swipeBack = false;
return value;
}


};
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
itemTouchHelper.attachToRecyclerView(libraryRecyclerView);
}

请帮忙。

最佳答案

onSwiped() 事件将在项目被完全滑出时触发。由于您持有项目 View ,因此这永远不会发生

Here您可以找到一个很棒的教程来实现这一目标。

关于android - OnSwipe 方法在 RecyclerView 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46654609/

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