2011-01-05 50 views
39

將線性佈局的兩個或多個元素設置爲相同的高度似乎是一個很大的問題。結合父親上的wrap_content和子女上的fill_parent

我想在一行中設置四個按鈕到相同的高度。

android:layout_height =「wrap_content」暫時做它,但是當其中一個按鈕上的文本長於一行時,此按鈕會增加,因此會比其他按鈕更大。由於不同的本地化,我不知道,何時和哪個按鈕可能有第二行。

所以我的想法是,將設置爲android:layout_height =「wrap_content」和所有(!)兒童高度的父線性佈局android:layout_height =「fill_parent」

這有效(所有按鈕都有相同的大小),但我不確定是否會導致任何其他問題?因爲它的父母從孩子身上獲得高度,反之亦然。

+0

我有完全相同的問題,非常感謝你問他的先生:) – 2011-11-16 12:01:27

+0

我是唯一一個不工作的人嗎? – Tiago 2016-03-28 22:01:10

回答

53

理論上你所描述不應該工作(「由於它的母公司得到它的高度,從)然而,我們在LinearLayout中工作是因爲它是一個非常常見的用例,我最近爲FrameLayout添加了類似的支持(此功能應該是Honeycomb的一部分)。因此,您所做的是完美的有效,並會工作得很好

+2

即使接受它的工作原理,我仍然對它爲什麼會起作用感到困惑。由於遞歸性質(父母要求孩子和孩子回覆),這有點奇怪。那麼是否有一個實際的文檔說明佈局過程在這種情況下的工作原理? 特別是,父母選擇其大小爲最大孩子的大小。因此,所有孩子的大小相同。這是記錄的嗎? – ramcrys 2013-09-09 13:18:49

+0

@ramcrys它可能有助於記住,孩子從不「回答」父母的大小 - 總是給予一個:父母測量孩子,將可用的大小(像素)與限定符(最多未確定的,最多準確地) 。 – ataulm 2015-08-03 15:01:07

+0

這似乎沒有'wrap_content'非常強烈。我在LinearLayout中有兩個按鈕。它們的高度設置爲「match_parent」而不是「wrap_content」。編輯:啊,'LinearLayout'也有'baseLineAligned'的一些樂趣 – Sam 2015-09-29 11:06:34

-2

這沒有意義:(

你爲什麼不使用android:singleLine="true"有的ellipsode?

相關問題