問題タブ [android-layout-weight]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
735 参照

android - ネストされた LinearLayout を使用すると、Layout_weight が期待どおりに機能しない

LinearLayout を取得して、目的の比率でビューを表示したいと考えています。LinearLayout と layout_weight に関する他の 10 または 15 の質問を熟読しましたが、何らかの理由で、私の場合には答えがないようです。次のように作成されたカスタム ビューを使用して、カスタム AlertDialog カラー ピッカーを作成しています。

私が抱えている問題は、3 つの垂直要素 (PresetView、subLayout、および LineView) の layout_height を に設定したにもかかわらず0、ウェイトが使用可能なスペースを希望どおりに分配していないことです。subLayout はスペースの 70% を取得しませんが、常にそれより少なくなります。

私が知る限り、PresetView は常に必要なだけの垂直方向のスペースを取得しており、subLayout と LineView は残りを占有するために残されています。onMeasure()PresetViewの私の方法は次のとおりです。

250 と 150 はかなり任意の値です。PresetView は、ほぼすべての寸法セットで動作するように設計されています (LinearLayout でサイズを制御したいためです!)。

0 の layout_height を使用し、重みを指定すると、ビューがそれを制御するのではなく、ビューが占めるスペースをレイアウトが制御するという印象を受けました。layout_height を 0 に設定すると、PresetView がまだ 150 ピクセルを占有しているのはなぜですか?

他のビューのonMeasure()メソッドは PresetView のものと同じですが、値が異なります。

0 投票する
1 に答える
592 参照

android - 奇妙なレイアウト動作-layout_weightとbuttons

Androidアプリのレイアウトに関して奇妙な問題があります(私はそれを学んでいるので、もちろん電卓を作っています:))。すべてのボタンを行の幅の25%に指定しましたが、上部にEditTextを追加すると、最初の列が他の3つの列よりもはるかに広くなります。(スクリーンショットはIntelliJプレビューのものですが、デバイスにアプリをロードすると同じ結果が表示されます。

EditTextを削除すると、この問題は解消されます。XMLのEditTextに重み属性を追加しようとしましたが、役に立ちませんでした。

結果:

結果

私のコード:

0 投票する
2 に答える
3072 参照

android - TableLayout を使用して画面/レイアウトの下部に View を配置する

画面の下部、レイアウトの他のビュー要素の下に 2 つのボタンを持つ TableRow を配置しようとしていますが、そこに配置すると、TableRow が画面から消えます。上でも真ん中でも問題ありません。

私は多くのlayout_gravity、gravity、weightの組み合わせを試していましたが、それを得ることができません.

レイアウトのスクリーンショット

0 投票する
5 に答える
3871 参照

android - Android レイアウトの重量 %

Android レイアウトの重み属性をいじろうとしています。「3 つの子レイアウト」を使用した垂直レイアウトが必要です。最初のレイアウトはスペースの 25%、2 番目のレイアウトは 50%、最後の 25% のスペースを占有します。最後のレイアウトに追加しようとすると、すべてが機能しません。これらの各レイアウトのウェイトはどれくらいにする必要がありますか?

ウェイト属性を 2 つのレイアウト/要素だけで正常に機能させ、その仕組みを理解していますが、3 つ試してみると問題が発生します。

0 投票する
2 に答える
2937 参照

android - Androidでレイアウトのようなグリッドを作成する

基本的に、各セクションのサイズが等しい2x4グリッドに分割する必要があるビューがあります(つまり、各行は画面の高さの25%になり、各列は画面の幅の50%になります)。

私のアプローチは、重みが0.5の2つの内部LinearLayoutを持つ水平LinearLayoutを使用し、それらの各LinearLayoutで子の重みを0.25に設定して、それぞれが画面の25%を占めるようにすることでした。

これは機能しているように見えますが、これは明らかにパフォーマンスに非常に悪いです(ネストされた重みがパフォーマンスに悪い理由については、このスレッドを参照してください?代替案?

これを達成するための代替手段はありますか?私は周りを見回しましたが、これに対する純粋なXMLソリューションを見つけることができません。

以下のLinearLayoutsとその子のセットアップ方法のコード例を参照してください

0 投票する
4 に答える
3003 参照

android - 画面上のレイアウトの固定比率

私のアプリには、2 つの線形レイアウトがあります。1 つは上部に、もう 1 つは下部にあります。

これらの layout 内にあるものは何でも、上部のレイアウトが画面の高さの 60% を占め、下部のレイアウトが 40% を占めるようにしてください。ここに私のXMLコードがあります:

これらのレイアウトが空の場合、問題はありません。適切な比率になっています。

問題は、たとえば上部のレイアウトに小さなリストビューを配置すると、レイアウトがリストビューのサイズになり、60/40% の比率が維持されないことです。

リストビューが小さい場合でも (たとえば 3 項目のみ)、レイアウトは 60% を維持するので、リストビューの下に空きスペースを置きます。

に変更しようとしましandroid:layout_heightmatch_parentが、何も変わりません。

0 投票する
2 に答える
9107 参照

java - Android:プログラムでWeightパラメータを設定すると、私が望むのとは逆になります

Androidに問題があります。私はJavaでWeightパラメータを設定していますが、それは私が望むものとは正反対のことをしています。

これがコードです

コンテナレイアウトの間に黒い線を追加して、このプロセスを7回繰り返します。通常、左に小さな赤い列と大きな黒い列を取得する必要がありますが、このコードで取得するものは次のとおりです。

http://i.stack.imgur.com/PPgoy.png

なぜそれはコードの正反対をしているのですか?

0 投票する
1 に答える
1409 参照

java - tablerow 要素の重みの設定

テーブル行のテキストビューとチェックボックスの重みをプログラムで設定しようとしています。いくつかの調査の後、これを行うために LayoutParams の 3 番目のパラメーターが使用されていることがわかりました。ただし、機能していないようです。誰かがこのコードを見て、何が問題なのかを理解できますか? ありがとう。(LinearLayout の提案で編集)

0 投票する
2 に答える
2284 参照

android - ネストされた線形レイアウトの重み

1つの「マスター」LinearLayoutがあり、その中に他のいくつかのLinearLayoutがネストされており、左右にずっと伸びています。重みを使用して、ネストされたレイアウト間の垂直方向のスペースをパーセンテージで分割できるかどうか疑問に思いました。もしそうなら、これは私が現在私のアプリで抱えているすべての問題の解決策になる可能性があります。すべての助けに感謝します!

これが私の目標です: ここに画像の説明を入力してください

それらを垂直に分割したいので、うまくスケーリングします。

0 投票する
1 に答える
1215 参照

android - layout_weight はどのようにウィジェットを非表示にしますか?

fill_parent幅を に設定し、高さを に設定して、「マスター レイアウト」に入れ子にした LinearLayouts があり0dpます。

マスターには合計 100 の重みと垂直方向があり、それぞれの重みを持つネストされたレイアウトがあります。目標は垂直方向のスペースを分割することですが、それらはすべて消えます。私は何を間違っていますか?

これが XMLweight/layoutsです。上位のいくつかにのみ適用しました。