Android:以编程方式在另一个控件下重新定位控件

时间:2012-05-04 13:56:08

标签: android

我在xml中有以下内容。它用于相对布局:

  <TextView
    android:id="@+id/tv1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>        
  <TextView
    android:id="@+id/tv2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/tv1"/>
  <TextView
    android:id="@+id/tv3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/tv2" />

在代码中,如果我删除第二个textview(tv2),我想在tv1下面重新定位tv3。我无法找到使用xml执行此操作的方法,因此我想以编程方式执行此操作。我怎样才能做到这一点?非常感谢!

2 个答案:

答案 0 :(得分:0)

我假设它与这里的问题非常相似 - &gt; How to set layout_weight attribute dynamically from code?

答案 1 :(得分:0)

Lint报告嵌套权重的性能问题。不是很明显,但这是另一种解决方案。


RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

p.addRule(RelativeLayout.BELOW, R.id.tv1);
tv3.setLayoutParams(p);