如何在FrameLayout中放置视图的中心

时间:2016-06-29 19:20:01

标签: android android-framelayout

我有FrameLayout已经拥有子视图,我知道它的宽度和高度(以像素为单位)。我想以编程方式添加一个新视图,使其中心位于框架布局的特定点。视图的大小未知,其FrameLayout.LayoutParams设置为WRAP_CONTENT, WRAP_CONTENT。我该怎么办?

2 个答案:

答案 0 :(得分:2)

假设您要将TextView放在FrameLayout的中间位置。

TextView text = (TextView)frame.findViewById(R.id.text);
FrameLayout frame = (FrameLayout)findViewById(R.id.frame1);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
        LayoutParams.WRAP_CONTENT);

现在将TextView添加到FrameLayout并将重力设置为居中

frame.addView(text);
params.gravity=Gravity.CENTER;

我还没有尝试过,但我认为它应该可行。

答案 1 :(得分:0)

在科特林中

 viewToADD?.layoutParams = FrameLayout.LayoutParams
                   (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT).
                    apply {gravity = Gravity.CENTER and Gravity.CENTER_VERTICAL}

  frameLayout.addView(viewToADD)