我想在屏幕中間顯示三個按鈕,並且三個按鈕都是相同的寬度,儘管它們將具有不同長度的文本標籤。如何創建等寬的按鈕?
只需添加三個帶不同長度文本標籤的按鈕,即可生成不同寬度的按鈕。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center">
<Button
android:id="@+id/button_1"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:text="ABCDEF" />
<Button
android:id="@+id/button_2"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:text="GHI" />
<Button
android:id="@+id/button_3"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:text="JKLM" />
</LinearLayout>
默認按鈕寬度包裝內容:
-
設置layout_weight爲1,layout_width到0dip上的所有按鈕使它們同等地拉伸以填充整個屏幕寬度。對於我想要的,這些按鈕太大了,特別是在大屏幕上。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center">
<Button
android:id="@+id/button_1"
android:layout_height="fill_parent"
android:layout_width="0dip"
android:layout_weight="1"
android:text="ABCDEF" />
<Button
android:id="@+id/button_2"
android:layout_height="fill_parent"
android:layout_width="0dip"
android:layout_weight="1"
android:text="GHI" />
<Button
android:id="@+id/button_3"
android:layout_height="fill_parent"
android:layout_width="0dip"
android:layout_weight="1"
android:text="JKLM" />
</LinearLayout>
佈局重量1按鈕填充屏幕寬度:
-
在父的LinearLayout設置爲weightSum不同的值可用於從充滿整個屏幕停止按鈕,但我不認爲這是我想要採取的路徑,因爲我不希望按鈕佔用大屏幕設備的大部分屏幕。爲了說明一下,使用weightSum,例如,我可以將三個按鈕設置爲佔用屏幕寬度的一半,這在小屏幕上可能看起來不錯,但在大屏幕上,按鈕仍佔用屏幕寬度的一半,按鈕會比我想要的大得多。也許最終的解決方案是簡單地爲不同的屏幕設置不同的佈局文件,但我寧願不走這條道路。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center"
android:weightSum="5">
<Button
android:id="@+id/button_1"
android:layout_height="fill_parent"
android:layout_width="0dip"
android:layout_weight="1"
android:text="ABCDEF" />
<Button
android:id="@+id/button_2"
android:layout_height="fill_parent"
android:layout_width="0dip"
android:layout_weight="1"
android:text="GHI" />
<Button
android:id="@+id/button_3"
android:layout_height="fill_parent"
android:layout_width="0dip"
android:layout_weight="1"
android:text="JKLM" />
</LinearLayout>
權重和5個小屏:
權重和5大屏:
-
我也試圖與TableLayout很多東西,但沒」沒有比使用LinearLayout更好的了。
GridView是非常笨拙的使用,我還沒有嘗試過。
那麼,如何創建具有相同寬度的按鈕,最好是它們的寬度必須儘可能寬,以適應按鈕內容最長的標籤?
任何意見表示讚賞。
(我做了搜索和發現這個問題,提出和回答很多次,但沒有我發現解決了我想要達到的答案。)
如何寫一個自定義佈局? – bigstones 2011-03-28 13:35:42