AMK*_*AMK 11 android android-recyclerview
我有这样的RecyclerView行布局
<Layout>
<BackgroundView>
<ForegroundView>
</Layout>
Run Code Online (Sandbox Code Playgroud)
我ItemTouchHelper用来处理前景视图上的滑动(部分)
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
adapter.onItemSwiped(viewHolder);
}
@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
float dX, float dY, int actionState, boolean isCurrentlyActive) {
View foregroundView = ((myViewHolder)viewHolder).getForegroundView();
getDefaultUIUtil().onDraw(c, recyclerView, foregroundView, dX, dY, actionState, isCurrentlyActive);
//getSwipeLimit() used below returns the width of the delete icon
float translationX = Math.min(-dX, ((myViewHolder) viewHolder).getSwipeLimit());
foregroundView.setTranslationX(-translationX);
}
Run Code Online (Sandbox Code Playgroud)
我在BindViewHolder我的适配器类中为backgroundview设置了一个单击侦听器.
@Override
public void onBindViewHolder(WhiteListViewHolder holder, Cursor cursor) {
//get name and number from the cursor here
holder.name.setText(name);
holder.number.setText(number);
holder.deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("whitelist", "yes clicked");
}
});
}
Run Code Online (Sandbox Code Playgroud)
问题是,后台视图在未刷过视图时接受点击,但在视图被刷出后,后台视图停止接受点击.
参考上面的图像,如果我点击删除按钮,有时会恢复滑动视图并且它不会捕获点击.
如果我将整个视图滑出,单击左侧的空白区域也会返回滑动视图.
提前致谢.
小智 1
我解决了任务的第一部分 - 现在没有滑动就无法检测到。但是滑动后没有检测到点击...
@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
if(actionState == ItemTouchHelper.ACTION_STATE_SWIPE){
if (dX < 0) {
backgroundView.setVisibility(View.VISIBLE);
}
else {
backgroundView.setVisibility(View.GONE);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1237 次 |
| 最近记录: |