【问题标题】:relative layout add view align below相对布局在下方添加视图对齐
【发布时间】: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 VIEW id 吗?并删除fakeView.setId(view.getViewId());,因为您正在尝试为两个视图设置相同的ID
  • 这些视图位于不同的视图组中,因此它们的 id 可能相同。
  • @Raman Branavitski 新的 TextView 需要位于“下面”标签中提到的另一个视图的同一 ViewGroup 中。如果是真的,那么所有这些视图都需要有不同的 ID。
  • 当然。你的权利。我的视图和 textView 在相同的布局中,并且具有不同的 id。忽略id。他们一切都好。

标签: android android-relativelayout


【解决方案1】:

试试这个

 ((RelativeLayout.LayoutParams) textview.getLayoutParams())
                .addRule(RelativeLayout.BELOW, view_id);

【讨论】:

  • 我不需要它在中心
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
  • 2020-01-29
  • 1970-01-01
  • 1970-01-01
  • 2013-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多