2011-02-24 20 views
0

正如標題所示,我正在使用佈局視圖和兩行按鈕來完成各種任務。一排按鈕在頂部,一個在底部,我喜歡看起來的樣子。在Android應用程序中設置佈局,有一些關於查找按鈕的問題

現在,對於不幸的部分:我使用了一對工具,您不需要再使用它來完成此操作:AbsoluteLayout以及px中的按鈕位置(和大小)而不是dp或sp。

事情是,即使我使用了更高級的佈局工具,我也不知道如何將一組按鈕放在屏幕底部。這只是一個屏幕大小,更不用說第二個(這是我現在得到的...)

現在,這不會是一個公開的應用程序,所以我不是非常擔心通用兼容性問題,但有沒有人對屏幕頂部和底部的一行5個按鈕(在橫向模式下固定)有簡單的佈局XML描述?

此外,有沒有人知道它是否可能在運行時找到佈局小部件?據我所知,這很容易重新規模他們,但不改變他們的位置?

感謝,
R.

回答

0
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top"> 
     <Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button> 
     <Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button> 
     <Button android:text="Button" android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button> 
     <Button android:text="Button" android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button> 
     <Button android:id="@+id/button4" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Button" android:layout_weight="1"></Button> 
    </LinearLayout> 
<LinearLayout android:id="@+id/linearLayout2" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="bottom" android:layout_gravity="bottom" android:layout_weight="1"> 
<Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="bottom"></Button> 
     <Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button> 
     <Button android:text="Button" android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button> 
     <Button android:text="Button" android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button> 
     <Button android:id="@+id/button4" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Button" android:layout_weight="1"></Button> 
</LinearLayout> 
</LinearLayout> 
0

有真正爲你的問題沒有很好的答案很簡單。你最好的選擇是閱讀一個教程,解釋並告訴你發生了什麼。我認爲this one對我來說是一個很好的起點。

0

有幾種方法可以完成你在說什麼,但我可能會使用RelativeLayout。關於如何在Romain Guy's blog上使用它們有一個很好的解釋。簡而言之,一組按鈕將分別設置爲layout_alignParentTop="true",其他設置將layout_alignParentBottom設置爲真 - 解決問題。您還可以在按鈕上設置android:id s,以便您可以使用android:layout_toLeftOf/android:layout_toRightOf將它們定位在彼此的左側/右側,或者您可以將每組按鈕都粘貼到LinearLayoutandroid:orientation="horizontal"

至於在運行時重新定位元素,你絕對可以做到這一點 - 但你必須通過元素的LayoutParams做到這一點(無論是創建適當類型的新LayoutParams對象,並將其分配給View,或致電getLayoutParams()並修改返回的對象)。對於RelativeLayout的孩子,請參閱RelativeLayout.LayoutParams

0

是的,這很容易使用FrameLayout和layout_gravity。


<FrameLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"/> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="top"/> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"/> 
      ... 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom"/> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"/> 
      ... 
    </LinearLayout> 
</FrameLayout> 

夾着兩個按鈕欄可能需要改變的FrameLayout到的LinearLayout和在中心視圖的layout_weight設置爲1,而不是指定按鈕欄的重量之間的視圖。

相關問題