問題タブ [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 投票する
19 に答える
425966 参照

android - Android のリニア レイアウトとウェイト

Android のドキュメントで、このおかしな重みの値についていつも読んでいます。今、初めて試してみたいのですが、まったく機能しません。

ドキュメントから理解しているように、このレイアウトは次のとおりです。

水平方向に配置され、スペースを均等に共有する 2 つのボタンを作成する必要があります。問題は、2 つのボタンがスペースを埋めるために大きくならないことです。

ボタンを大きくして行全体を埋めたいと思います。両方のボタンが親に一致するように設定されている場合、最初のボタンのみが表示され、行全体に表示されます。

0 投票する
12 に答える
236438 参照

android - プログラムで TextView のレイアウトの重みを設定する

TableRowオブジェクトを動的に作成してTableLayout. TableRowオブジェクトには aTextViewと aの2 つの項目がありCheckBoxます。アイテムを右端に移動するには、アイテムのTextViewレイアウト ウェイトを 1 に設定する必要があります。CheckBox

TextViewアイテムのレイアウト ウェイトをプログラムで設定する方法に関するドキュメントが見つかりません。

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

android - 線形レイアウト - 重みと FILL_PARENT の違い

ドキュメントによると、 FILL_PARENT は基本的に、ビューが余分なスペース全体を占有できるようにします。重みは、ビューがどれだけの余分なスペースを取ることができるかも決定します。違いはなんですか?

例:使用するとどうなりますか、

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

android - LinearLayout 内の TextView が LinearLayout を引き伸ばし、fill_parent 修正によりウェイト フリップが発生する

2 つの LinearLayouts 分割 %50/%50 がある場合、すべて問題ありません。重みは 1 と 1 です。一番上の LinearLayout 内に TextView を追加するとすぐに、そのレイアウトが引き伸ばされます。wrap_content重みに関しては、ドキュメントに記載されているとおりに使用します。

ご覧のとおり、赤と緑は均等に分割され、灰色の背景のテキストは赤いボックス内にある必要があります。コードは次のとおりです。

次のように「親を埋める」に切り替えると、実際には機能しますが、別の問題が発生します。これがコードです(これまでのところとても良いです):

したがって、上記を見ると、使用を余儀なくさfill_parentれ、問題を修正したように思えますが、使用している場合の問題は次のとおりfill_parentです (問題を表示するためだけに TextView を取り出しましたが、TextView は問題を解決しません) :

ご覧のとおり、重み 3 (上の赤) と 2 (下の緑) を割り当てていますが、実際にはこれらが反転します。赤が 2 になり、下が 3 になります。ピクセルを測定するだけです。

3つのコードの結果は次のとおりです。

明確にするために、レイアウトがこれ(一番上のレイアウト)内にラップされるたびに:

XMLversion="1.0" encoding="utf-8"と適切な名前空間。

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

android - Android:android:layout_weightを理解しようとしています

ページを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

代替テキスト

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

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

java - 表行にボタンとテキストビューがあるlayout_weight

それぞれ3つのボタンを4行作成しようとしていますが、ボタンの下部には2つのテキストビューがあります。それらすべてを等間隔に配置したいのですが、そうではなく、理由はわかりません。

これが私のmain.xmlファイルのコードです。

私のテキストビューには次のコードがあります。

プログラムを実行すると、次のようになります。

代替テキスト

0 投票する
10 に答える
247453 参照

android - コードからlayout_weight属性を動的に設定するにはどうすればよいですか?

layout_weightJavaコードからAndroidのボタンの属性の値を動的に設定するにはどうすればよいですか?

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

android - layout_weight、layout_width、maxWidthを使用したAndroidレイアウト

次のようなテキストの行を取得しようとしています

foofoofoo-barbarbar

ただし、1行に収まらない場合は、fooとbarを省略してください。つまり、私はそれらを短縮しようとしています。

これは部分的に機能します。

TextView'slayout_widthをbe0dipおよびlayout_weighttoに設定する1と、それぞれが使用可能なスペースの50%を占めることになります。

singleLinetotrueellipsizetoを設定すると、テキストがコンテナよりも大きい場合、それらはfoofootrueのように見えます。

したがって、私の結果(テキストが長い場合)は

foofoo..-バーバー..

どっちだ!したがって、これは機能します。

今、私が修正しようとしているのは、最初のTextView(id:text_1)がによって与えられた50%未満のテキストを持っていて、layout_width="0dip"それlayout_weight="1"を望んでいる場合wrap_contentです。それ以外の場合は、次のようになります。

foo 空白スペース -バーバー。

そして私は欲しい

foo-バーバーバー

これが私が変更layout_width="wrap_content"して追加した理由ですandroid:maxWidth="0dip"が、これは機能しません!私が言っていることを無視しwrap_content、それでもこの見解を50%与えているようです!

android:adjustViewBounds="true"動作させるには追加する必要があると読みmaxWidthましたが、これによる影響はありませんでした。

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

android - プログラムで ViewFlipper の重みを設定する

プログラムで ViewFlipper の重みを変更したいと思います。2 つの列がある TableRow があります。2 番目の列に ViewFlipper が含まれている場合、1 番目の列には RelativeLayout 要素が含まれます。私の ViewFlipper には 2 つのビューが含まれています。Java コードで、ボタンをクリックしたときに ViewFlipper の表示ビューを変更します。私がやりたいことは、(showNext() を呼び出して) ViewFlipper ビューを変更するときに、ViewFlipper の重みを変更して画面内で大きくできるようにすることです。

つまり、行の最初の列の重みは 1 で、2 番目の列 (ViewFlipper) の重みは 0.8 です。ボタンをクリックすると、それらの重みをプログラムで変更したいと思います。それは可能ですか?どのように ?以下は私のXMLコードです。

Webで検索したところ、次の解決策が見つかりました。

これは機能しません。クラッシュします。ViewFlipper は LinearLayout ではないため、これは正常だと思います。

ここに私のXMLコードがあります:

何か考えはありますか?

ありがとう

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

android - Android LinearLayout の重みを 1 と 2 の値で機能させるにはどうすればよいですか?

それぞれが同じ高さの 3 つの行を持つ LinearLayout を作成しようとしています。これを、メインの 1 つの中に 3 つの LinearLayouts を使用して作成しています。それぞれの layout_weight は 1 です。

中央の LinearLayout には、重みが 1、2、1 の ImageView、TextView、ImageView が含まれている必要があります。これを行うために、中央の LinearLayout 内に別の 3 を作成しました。

TextView を各 ImageView の 2 倍のサイズにしたい。以下のコードを見ると、内側の LinearLayouts の layout_weight が 1 の場合、問題はなく、3 つが同じサイズで表示されます。ただし、中央のもの (id=textLayout を使用) を に設定するとlayout_weight=2、完全に消え (Eclipse グラフィカル レイアウト ビューアで見られるように)、他の 2 つだけが表示されます。