我正在使用向左滑动删除功能构建应用。我有一个撤消对话框,所以当用户决定“撤消”删除时,我只需要通过恢复原始X位置并使其可见而将其带到屏幕上。问题是它不会再出现,直到触摸视图,滚动滚动,触摸按钮 - 几乎任何东西,然后它会出现。
我让我的观点回来了:
for (int i = 0; i < container.getChildCount(); i++) {
View item = container.getChildAt(i);
int tag = (int) item.getTag();
if (tag == deleteTag) {
item.setX(originalX);
item.setVisibility(View.VISIBLE);
item.setOnClickListener(snapShopDetailListener);
item.setOnTouchListener(removeTouchListener);
item.invalidate(); // force redraw
}
}
我将它们以编程方式放入我在Java中称为“容器”的LinearLayout中。这是动画上的;
<LinearLayout
android:id="@+id/store_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:animateLayoutChanges="true"
android:orientation="vertical">
</LinearLayout>
我试图使视图无效并强制重绘,但这没有帮助。当它最终出现时,一切都就像它应该的那样,它只是一个空的空间,直到有东西被触摸。
当我关闭时 机器人:animateLayoutChanges = “假”
那么这些观点并不是那么狡猾,但他们进来并留下来,我有问题。