无法以编程方式在另一个视图的顶部完美添加视图

时间:2015-05-28 18:31:51

标签: android layout view

我正在尝试在操作栏中的菜单项顶部添加视图。我试着用这种方式:

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(位置),仍处于相同的错误位置。

0 个答案:

没有答案