有沒有辦法在XML中聲明一行按鈕,這樣所有的按鈕都有相同的寬度,這等於最寬按鈕的wrap_content寬度?我熟悉將所有寬度設置爲0並將它們全部賦予1的權重的技巧,但如果父級佈局寬度設置爲wrap_content,則不起作用。我不想將父寬度設置爲fill_parent,因爲我不希望按鈕拉伸超過必要。在Android XML中是否有一種方法可以將寬度設置爲最寬按鈕的一排按鈕?
我能想到做到這一點的唯一方法是在代碼中(每個按鈕中的onMeasure邏輯與其他按鈕進行通信或使用自定義佈局類)。
有沒有辦法在XML中聲明一行按鈕,這樣所有的按鈕都有相同的寬度,這等於最寬按鈕的wrap_content寬度?我熟悉將所有寬度設置爲0並將它們全部賦予1的權重的技巧,但如果父級佈局寬度設置爲wrap_content,則不起作用。我不想將父寬度設置爲fill_parent,因爲我不希望按鈕拉伸超過必要。在Android XML中是否有一種方法可以將寬度設置爲最寬按鈕的一排按鈕?
我能想到做到這一點的唯一方法是在代碼中(每個按鈕中的onMeasure邏輯與其他按鈕進行通信或使用自定義佈局類)。
我想你必須在代碼中這樣做。
創建一個自定義佈局類將是要走的路。覆蓋onMeasure()並使其看起來像這樣:
這應該工作,但我不會股份還有我的名譽......樂意幫助你進一步,如果它沒有。
爲了讓按鈕在XML行,你需要在一個LinearLayout中的orietnation添加按鈕,切換到橫向即
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
</LinearLayout>
至於獲得最廣泛的按鈕,並改變所有其它按鈕以匹配我不知道作爲一個猜測,你將不得不在活動中有某種方法來獲得最廣泛的按鈕,然後programaticaly設置所有其他按鈕是相同的。
只要找出你最寬的按鈕是什麼,但它在一個水平寬度匹配的視圖,然後在< 2.3使用layout_width =「match_parent」或「fill_parent」。
這將使他們都使用分配的寬度。
如果你想以編程方式做,你需要迭代所有的部分,找到最大值,然後再次迭代並設置它。
聽起來好像沒有辦法只用XML來完成它。我以前很怕那個。很遺憾Android沒有像J2SE的GridLayout這樣的東西。 – 2011-01-13 00:04:45