我有一个使用GestureDetector处理向左滑动的列表视图。 对于每个项目,布局如下:
[FrameLayout]
[LinearLayout] hidden_menu [/LinearLayout]
[LinearLayout] main_layout [/LinearLayout]
[/FrameLayout]
,它将处理onTouchListener。当我将main_layout移动到右侧时,hidden_menu将显示为 [sample image]。当将其他项目移动到右边,或者移动UP或moveDOWN列表视图时,我将使用ObjectAnimator(x)隐藏旧(或打开)项目的hidden_menu,并在最后的动画中调用main_layout.invalidate()。
我的问题是滚动列表视图时,它会重复使用ViewHolder模式的行布局,因此新行布局错误(某些hidden_layout可见)。
1)调用getView()时刷新新项目的想法是什么?
2)或者如何像第一次刷新动画项目
我希望你们能理解我!
谢谢和最诚挚的问候!
答案 0 :(得分:0)
我在我的案例中找到了解决方案:
if(holder.mHiddenMenu.getLeft() != 0) {
holder.mHiddenMenu.setTranslationX(0);
}