【发布时间】:2017-01-04 11:25:19
【问题描述】:
我有一个像这样的RecyclerView 行布局
<Layout>
<BackgroundView>
<ForegroundView>
</Layout>
我正在使用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);
}
我在我的适配器类的BindViewHolder 中为背景视图设置了一个点击监听器。
@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");
}
});
}
问题是,当视图未滑动时,背景视图正在接受点击,但在视图被刷出后,背景视图停止接受点击。
参考上图,如果我点击删除按钮,滑动视图有时会恢复,它不会捕获点击。
如果我让整个视图滑出,单击左侧的空白区域也会带回滑过的视图。
提前致谢。
【问题讨论】:
-
能否请您在 Github 上分享您的项目,以便我尝试一下?
-
@ReazMurshed 你可以在这里找到项目:github.com/amk47/testproject
-
你解决了吗?我遇到了同样的问题
-
你解决了这个问题吗?
-
有人有解决办法吗?
标签: android android-recyclerview