2014-08-27 140 views
0

是否有方法在屏幕底部以編程方式添加視圖(無論屏幕大小)?我不需要任何解決方法和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

回答

0

View view = new View(this)創建新的視圖

layout.addView(view)應在底部添加視圖。您還可以添加LayoutParams來設置寬度/高度,或者添加像layout_below這樣的規則。

+1

這意味着OP知道有問題的容器的正確佈局規則,這在運行時可能很難確定。 – CommonsWare 2014-08-27 11:42:50

0
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); 

} 
0

好的我找到了答案,我張貼在這裏,以防其他人需要這個。

//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刪除它,然後設置徘徊

相關問題