【发布时间】:2016-06-29 19:20:01
【问题描述】:
我有一个FrameLayout,它已经拥有一个子视图,并且我知道它的宽度和高度(以像素为单位)。我想以编程方式添加一个新视图,使其中心位于框架布局的特定点。视图的大小未知,其FrameLayout.LayoutParams 设置为WRAP_CONTENT, WRAP_CONTENT。我该怎么做?
【问题讨论】:
标签: android android-framelayout
我有一个FrameLayout,它已经拥有一个子视图,并且我知道它的宽度和高度(以像素为单位)。我想以编程方式添加一个新视图,使其中心位于框架布局的特定点。视图的大小未知,其FrameLayout.LayoutParams 设置为WRAP_CONTENT, WRAP_CONTENT。我该怎么做?
【问题讨论】:
标签: android android-framelayout
假设您想将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;
我没有尝试过,但我认为它应该可以工作。
【讨论】:
viewToADD?.layoutParams = FrameLayout.LayoutParams
(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT).
apply {gravity = Gravity.CENTER and Gravity.CENTER_VERTICAL}
frameLayout.addView(viewToADD)
【讨论】: