我正在尝试在操作栏中的菜单项顶部添加视图。我试着用这种方式:
int[] location = new int[2];
targetView.getLocationInWindow(location);
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) targetView.getLayoutParams();
RelativeLayout.LayoutParams topLayoutParams = (RelativeLayout.LayoutParams) topView.getLayoutParams();
topLayoutParams.leftMargin = location[0] + targetView.getPaddingLeft() + layoutParams.getMarginLeft();
topLayoutParams.topMargin = location[1] + targetView.getPaddingTop() + layoutParams.getMarginTop();
topView.setLayoutParams(topLayoutParams);
invalidate();
但是,操作栏中的目标视图始终存在一点垂直偏移。顶视图位于底部视图上方少量。任何人都知道这个小差异在哪里?
P.S。 topView位于RelativeLayout中。并且relativeLayout被添加到窗口的DecorView中,因此relativeLayout包含整个屏幕尺寸。
p.s.2我也尝试使用View.getLocationOnScreen(位置),仍处于相同的错误位置。