【发布时间】:2015-01-10 20:45:45
【问题描述】:
所以,我创建视图,设置大小和位置并将其添加到 RelativeLayout。它被添加到所需的位置。
View fakeView = new View(getContext());
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((int) view.getViewBounds().width(),
(int) view.getViewBounds().height());
// params.leftMargin = (int) view.getViewBounds().left;
// params.topMargin = (int) view.getViewBounds().top;
fakeView.setX((int) view.getViewBounds().left);
fakeView.setY((int) view.getViewBounds().top);
fakeView.setBackgroundColor(Color.parseColor("#80FFFFFF"));
fakeView.setLayoutParams(params);
fakeView.setId(view.getViewId());
addView(fakeView, params);
然后我创建 TextView 并将其设置在此视图下方。
RelativeLayout.LayoutParams textParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
textParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
textParams.addRule(RelativeLayout.BELOW, mSignaturePlaceHolder.getId());
并期望此文本低于我的视野。但在实践中,我有以下结果。
就像我的视图位于位置 0,0。但它在neded位置绘制。我做错了什么?
【问题讨论】:
-
你确定你在
textParams.addRule中传递MY VIEWid 吗?并删除fakeView.setId(view.getViewId());,因为您正在尝试为两个视图设置相同的ID -
这些视图位于不同的视图组中,因此它们的 id 可能相同。
-
@Raman Branavitski 新的 TextView 需要位于“下面”标签中提到的另一个视图的同一 ViewGroup 中。如果是真的,那么所有这些视图都需要有不同的 ID。
-
当然。你的权利。我的视图和 textView 在相同的布局中,并且具有不同的 id。忽略id。他们一切都好。
标签: android android-relativelayout