2016-05-17 100 views
4

我剛開始使用Android並具有以下代碼。我想在屏幕底部顯示三個按鈕而不改變爲相對佈局。我嘗試設置內部線性佈局的layout_weightgravity,但這會將按鈕放在手機的三個菜單按鈕後面的底部。我如何在菜單按鈕上方顯示它們?任何幫助,將不勝感激。如何使用線性佈局將按鈕設置到屏幕底部

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <EditText 
     android:id="@+id/search_box" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/search_box" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:paddingTop="80dp" 
     android:text="@string/welcome" 
     android:textSize="24sp" /> 

    <LinearLayout 
     style="?android:attr/buttonBarStyle" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:gravity="bottom" 
     android:orientation="horizontal"> 

     <Button 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/buttonB1" /> 

     <Button 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/buttonB2" /> 

     <Button 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/buttonB3" /> 
    </LinearLayout> 
</LinearLayout> 

左圖顯示了我想移動到底部的按鈕。右圖顯示我嘗試這樣做,但按鈕最終部分落後於系統菜單按鈕。

Buttons I want to move to the bottom Buttons behind the menu buttons of phone

+0

爲什麼不使用相對佈局?這將爲您節省大量的時間和精力。 –

+0

您是否嘗試在設備上運行此操作?我不知道這是否只是預覽屏幕顯示不正確的結果。 –

+0

那麼他發佈的圖像不是預覽而是模擬器。 – Vucko

回答

0

嘗試在每個按鍵底部添加邊緣。將此添加到每個按鈕佈局:android:layout_marginBottom =「20dp」

如果這樣不起作用,請向linearlayout本身添加底部邊距。

+0

它的工作原理,但在仿真器上運行,它增加了按鈕下方的額外空間。希望讓他們在屏幕邊緣。 – Fleur

0

設置TextView height = 0,weight = 1。 和LinearLayout height = wrap內容。 它會好的。試試!

0

試試吧

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <EditText 
     android:id="@+id/search_box" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/search_box" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:background="#F00" 
     android:gravity="center_horizontal" 
     android:paddingTop="80dp" 
     android:text="@string/welcome" 
     android:textSize="24sp" /> 

    <LinearLayout 
     style="?android:attr/buttonBarStyle" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#FF0" 
     android:orientation="horizontal"> 

     <Button 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/buttonB1" /> 

     <Button 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/buttonB2" /> 

     <Button 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/buttonB3" /> 
    </LinearLayout> 
</LinearLayout> 
相關問題