解决方法1
这是support.v7下PopupMenu的一个bug,改用android.widget.PopupWindow包下的PopupMenu就可以了。当然PopupMenu只兼容到Kitkat,所以对于绝大部分脸小的应用是不可行的。
解决方法2
重写与PopupMenu绑定的AnchorView的requestRectangleOnScreen(Rect rectangle, boolean immediate)方法,并且return false。比如当PopupMenu的锚点View为ImageView时。
public class NoScrollImageVIew extends ImageView {
public NoScrollImageVIew(Context context) {
super(context);
}
public NoScrollImageVIew(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public NoScrollImageVIew(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean requestRectangleOnScreen(Rect rectangle, boolean immediate) {
return false;
}
}
AnchorView指PopupMenu构造函数的第二个参数
本文介绍了解决Android中PopupMenu出现的滚动问题的两种方法:一是更换使用PopupWindow包下的PopupMenu;二是通过重写与PopupMenu绑定的AnchorView的requestRectangleOnScreen方法。
418

被折叠的 条评论
为什么被折叠?



