是否有方法在屏幕底部以编程方式添加视图(无论屏幕大小)?我不需要任何解决方法和xml和/或布局,只需以编程方式查找屏幕底部并在活动内部放置视图即可。Android:添加视图以编程方式在屏幕底部添加视图
在此先感谢。
是否有方法在屏幕底部以编程方式添加视图(无论屏幕大小)?我不需要任何解决方法和xml和/或布局,只需以编程方式查找屏幕底部并在活动内部放置视图即可。Android:添加视图以编程方式在屏幕底部添加视图
在此先感谢。
View view = new View(this)
创建新的视图
layout.addView(view)
应在底部添加视图。您还可以添加LayoutParams来设置宽度/高度,或者添加像layout_below
这样的规则。
这意味着OP知道有问题的容器的正确布局规则,这在运行时可能很难确定。 – CommonsWare 2014-08-27 11:42:50
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dynamic_views);
// This is in your xml
LinearLayout ll=(LinearLayout)findViewById(R.id.footer);
// Now we will create dynamic footer
final LinearLayout dynamic_footer=new LinearLayout(this);
dynamic_footer.setOrientation(LinearLayout.Horizontal);
ll.addView(dynamic_footer);
Button add_btn=new Button(this);
add_btn.setText("I am footer button");
dynamic_footer.addView(add_btn);
TextView tv=new TextView(getApplicationContext());
tv.setText("Hello World");
dynamic_footer.addView(tv);
EditText et=new EditText(getApplicationContext());
dynamic_footer.addView(et);
}
好的我找到了答案,我张贴在这里,以防其他人需要这个。
//find screen size
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int height = size.y;
//set layout margin top depeding on screen size
layout = (LinearLayout) findViewById(R.id.theViewForTheBottom);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)layout.getLayoutParams();
params.setMargins(0, height , 0, 0);
layout.setLayoutParams(params);
需要注意的是,如果你想在底部放置在屏幕上方没有启动的观点,你必须做这个过程从顶部计算DP的距离,从屏幕尺寸在DP删除它,然后设置徘徊
“我不需要任何解决方法或xml和/或布局 - 你的证明是,究竟是什么? – CommonsWare 2014-08-27 11:38:35
其实你完全通过使用xml定义的布局,你拒绝去做 我只能建议给一个FrameLayout添加一个子例子,解释为什么XML在这里不好? – Jitsu 2014-08-27 11:40:20
事情是我有一个父活动,带有一个activity_main.xml和另一个活动通过activity_blabla.xml继承父项。父活动包含一个称为内容的布局,并在那里以编程方式加载activity_blabla.xml,因此在activity_blabla底部放置一个视图不会在屏幕底部结束,因为activity_main会将其他东西放在下面..我想要的是在此特定活动放置在底部的东西。请不要在acvity_main上添加这个视图。我需要知道我所问的只是可能的。 – 2014-08-27 11:50:39