19

ページを3つの部分に分割しようとしています。パーセンテージ値でやりたいのですが、Androidではサポートされていません。代わりに、を使用する必要がありますandroid:layout_weight。しかし、私はそれを理解して正しく理解するのに苦労しています。特に実際のサイズの計算方法。パーセンテージ値(0..100%)を取得する方法はありandroid:layout_weightますか?

問題を説明するために、いくつかのケース(添付のスクリーンショットを参照)を実行しました。フルスクリーンをそれらの間で分割したいので、色<LinearLayout>付きのフィールドはすべて。android:layout_height="fill_parent"

ケース1

代替テキスト

わかりました、簡単です。すべて<LinearLayout>が33%になります。

ケース2

代替テキスト

UPS?!最初の(黄色)<LinearLayout>は完全に消えますか?なんで?

ケース3

代替テキスト

再び混乱しました。黄色<LinearLayout>が戻ってきました。しかし、最初の2つ<LinearLayout>は、重量が重いほど小さくなりますか?何が起こっている?

ケース4

代替テキスト

私はこのすべての背後にある数学が何であるか全くわかりません。

4

2 に答える 2

25

android:layout_weightからパーセンテージ値(0..100%)を取得する方法はありますか?

もちろん。それらを合計して100にします。

「パーセンテージ値」についてはandroid:layout_height、内の個々のアイテムのLinearLayoutを。にする必要があります0px

于 2010-09-02T17:08:24.577 に答える
8

バーにandroid:layout_height = "fill_parent"を使用すると、使用可能なスペースが残りません。(親を塗りつぶしているため。)3つすべてが塗りつぶしに設定されているため、要求された高さは実際には親の高さの3倍であり、重みは負の残りのスペースに適用されます。これは、あなたが見ている奇妙な振る舞いを説明し、layout_heightを0pxに設定することでそれが解決する理由を説明しています。

于 2010-11-23T10:04:27.290 に答える