Android:添加视图以编程方式在屏幕底部添加视图

问题描述:

是否有方法在屏幕底部以编程方式添加视图(无论屏幕大小)?我不需要任何解决方法和xml和/或布局,只需以编程方式查找屏幕底部并在活动内部放置视图即可。Android:添加视图以编程方式在屏幕底部添加视图

在此先感谢。

+2

“我不需要任何解决方法或xml和/或布局 - 你的证明是,究竟是什么? – CommonsWare 2014-08-27 11:38:35

+0

其实你完全通过使用xml定义的布局,你拒绝去做 我只能建议给一个FrameLayout添加一个子例子,解释为什么XML在这里不好? – Jitsu 2014-08-27 11:40:20

+0

事情是我有一个父活动,带有一个activity_main.xml和另一个活动通过activity_blabla.xml继承父项。父活动包含一个称为内容的布局,并在那里以编程方式加载activity_blabla.xml,因此在activity_blabla底部放置一个视图不会在屏幕底部结束,因为activity_main会将其他东西放在下面..我想要的是在此特定活动放置在底部的东西。请不要在acvity_main上添加这个视图。我需要知道我所问的只是可能的。 – 2014-08-27 11:50:39

View view = new View(this)创建新的视图

layout.addView(view)应在底部添加视图。您还可以添加LayoutParams来设置宽度/高度,或者添加像layout_below这样的规则。

+1

这意味着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删除它,然后设置徘徊