在前面定义的特定位置将布局添加到另一个布局

时间:2012-04-10 02:20:14

标签: android android-layout

假设我在xml文件中创建了一个相对布局,并在此布局中的某个位置放置了占位符以供将来查看。此未来视图是另一个XML视图中的另一个布局。怎么能在代码中做到这一点?我知道我必须膨胀未来的视图但是当我将它添加到主布局时它最终是左上角的核心而不是我为它创建的占位符 谢谢

2 个答案:

答案 0 :(得分:1)

忘记占位符,只需像正常一样添加视图,并在创建时指定所需的参数。

View v = layoutInflater.inflate(R.layout.future_view, null);
RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
v.addRule(RelativeLayout.ALIGN_WITH_PARENT_TOP);
relativeLayout.addView(v,relativeParams)

答案 1 :(得分:1)

您可以将任何视图添加到布局中的任何位置,将父视图视图设置为RelativeLayout,假设您要将视图放在屏幕上的(x,y)点,通过方法在屏幕上查找布局的位置:< / p>

View.getLocationOnScreen()

让我们假设我们通过这种方法获得x1和y1。 现在通过视图的绝对x,y坐标 - 父的绝对x1,y1找出相对于父布局的视图的未来(x,y)位置。让我们假设我们发现差异为x2,y2。

现在定义视图的LayoutParams,如下所示:

    View v = layoutInflater.inflate(R.layout.future_view, null);
    RelativeLayout.LayoutParams params= new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
   params.setMargins(x2, y2, 0, 0);


    relativeLayout.addView(v,relativeParams)