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

Android 在前面定义的特定位置将布局添加到另一个布局,android,android-layout,Android,Android Layout,假设我在xml文件中创建了一个相对布局,并在该布局的某个位置放置了一个占位符以供将来查看。这个未来视图是另一个XML视图中的另一个布局。如何在代码中做到这一点?我知道我必须放大未来视图,但当我将其添加到主布局中时,它最终会成为左上角的corener,而不是我为其创建的占位符 谢谢忘记占位符,只需像普通视图一样添加视图,并在创建视图时指定所需的参数即可 View v = layoutInflater.inflate(R.layout.future_view, null); RelativeLayo

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

忘记占位符,只需像普通视图一样添加视图,并在创建视图时指定所需的参数即可

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)

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

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)

谢谢你的详细回答。我喜欢相对距离的概念