問題タブ [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.
android - Android のリニア レイアウトとウェイト
Android のドキュメントで、このおかしな重みの値についていつも読んでいます。今、初めて試してみたいのですが、まったく機能しません。
ドキュメントから理解しているように、このレイアウトは次のとおりです。
水平方向に配置され、スペースを均等に共有する 2 つのボタンを作成する必要があります。問題は、2 つのボタンがスペースを埋めるために大きくならないことです。
ボタンを大きくして行全体を埋めたいと思います。両方のボタンが親に一致するように設定されている場合、最初のボタンのみが表示され、行全体に表示されます。
android - プログラムで TextView のレイアウトの重みを設定する
TableRow
オブジェクトを動的に作成してTableLayout
. TableRow
オブジェクトには aTextView
と aの2 つの項目がありCheckBox
ます。アイテムを右端に移動するには、アイテムのTextView
レイアウト ウェイトを 1 に設定する必要があります。CheckBox
TextView
アイテムのレイアウト ウェイトをプログラムで設定する方法に関するドキュメントが見つかりません。
android - 線形レイアウト - 重みと FILL_PARENT の違い
ドキュメントによると、 FILL_PARENT は基本的に、ビューが余分なスペース全体を占有できるようにします。重みは、ビューがどれだけの余分なスペースを取ることができるかも決定します。違いはなんですか?
例:使用するとどうなりますか、
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"
と適切な名前空間。
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
私はこのすべての背後にある数学が何であるか全くわかりません。
android - コードからlayout_weight属性を動的に設定するにはどうすればよいですか?
layout_weight
JavaコードからAndroidのボタンの属性の値を動的に設定するにはどうすればよいですか?
android - layout_weight、layout_width、maxWidthを使用したAndroidレイアウト
次のようなテキストの行を取得しようとしています
foofoofoo-barbarbar
ただし、1行に収まらない場合は、fooとbarを省略してください。つまり、私はそれらを短縮しようとしています。
これは部分的に機能します。
TextView
'slayout_width
をbe0dip
およびlayout_weight
toに設定する1
と、それぞれが使用可能なスペースの50%を占めることになります。
singleLine
totrue
とellipsize
toを設定すると、テキストがコンテナよりも大きい場合、それらは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
ましたが、これによる影響はありませんでした。
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コードがあります:
何か考えはありますか?
ありがとう
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 つだけが表示されます。