2014-08-27 3 views
0

Есть ли способ добавить представление программно в нижней части экрана (независимо от размера экрана)? Мне не нужны какие-либо работы или решения с помощью xml и/или макетов, просто программно найдите нижнюю часть экрана и поместите вид внутри операции.Android: Добавить программу программно в нижней части экрана

Заранее спасибо.

+2

«Мне не нужны какие-либо работы или решения с помощью xml и/или макетов, - и ваше доказательство этого - то, что именно? – CommonsWare

+0

На самом деле вы делаете это именно с помощью XML-макета, который вы отказываются делать. Я могу предложить только добавить ребенка к FrameLayout, например. Объясните, почему XML здесь не подходит? – Jitsu

+0

У меня есть родительская активность с Activity_main.xml и другая деятельность, которая наследует от родителя с Activity_blabla.xml. родительская активность содержит макет, называемый содержимым, и там программно загружает activity_blabla.xml, поэтому, если в нижней части экрана не будет отображаться представление в области activity_blabla, то действие activity_main будет размещать другие вещи ниже. То, что я хочу, находится в этом конкретном чтобы поместить что-то внизу. Пожалуйста, не работайте, как добавление этого взгляда на acvity_main. Мне нужно знать, возможно ли только то, что я спросил. –

ответ

0

View view = new View(this) создает новый вид

layout.addView(view) следует добавить вид снизу. Вы также можете добавить LayoutParams для установки ширины/высоты или добавить правила, такие как layout_below.

+1

Это означает, что ОП знает правильные правила компоновки для рассматриваемого контейнера, что может быть трудно определить «на лету» во время выполнения. – CommonsWare

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

Хорошо, я нашел ответ, Ill post it here, если кому-то это понадобится.

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

Обратите внимание, что если вид вы хотите разместить на дне не начинается в верхней части экрана, вы должны сделать этот процесс вычисления дп расстояние от верхней части, удаляя его от размера экрана в дп, и затем установить маржирование

Смежные вопросы