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