Android拖放和组件可见性

3
我在一个片段中有一个按钮,该按钮的可见性属性设置为“GONE”。我想在拖放操作开始时将可见性设置为“VISIBLE”。并在拖放操作结束时将可见性设置为“GONE”,我该如何做? 编辑:我使用了View.OnDragListener,但当可见性被设置为“GONE”或“INVISIBLE”时,它根本不会调用View.OnDraglistener。
谢谢。
2个回答

7
我也遇到了这个问题。有几张图片可以重新排序,还有一个区域,当图片被放置在上面时,它会被删除。所有的图片都有特定的拖放监听器,而删除区域有一个不同的拖放监听器(因为它的用途不同)。一切都运行正常,使用了所有标准API,但我希望拖放区域只在拖动开始时出现,在拖动结束时消失(或者将项目放在其中以进行删除)。然后这里出现了一个“错误”(我猜是这样):如果更改视图的可见性(最初是不可见的,然后在需要时使其可见,然后再次变为不可见),似乎会取消/丢失/不起作用监听器,并且设置/重置它不会改变任何内容。
对我来说,解决方案是设置其透明度(alpha)。
view.setAlpha(0); //transparent thus invisible
view.setAlhpa(1f); //opaque, visible

如果有人也会遇到这个问题,我想分享一下。

顺便说一句,如果您想隐藏一个视图,请使用INVISIBLE,GONE会有不同的后果。 http://developer.android.com/reference/android/view/View.html


我也想做同样的事情,对我来说解决方案是改变我的组件宽度。谢谢。 - Armin

0

1
我在提问之前已经尝试过,但是当可见性设置为“GONE”或“INVISIBLE”时,它根本不会调用View.OnDragListener :( - Armin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接