この非常に厄介なレイアウトの問題を思いつきました。
基本的に、私が探している UI コンポーネントはそれほど複雑ではありませんが、動作は正確である必要があります。
いずれの場合も、水平にレイアウトする必要がある 2 つまたは 3 つのテキストがあります。
最良のシナリオでは、これら 3 つのすべてが 1 行に収まるので、レイアウトは問題になりません。
| | テキスト 1 < 空白> | テキスト 2 | <空白> テキスト 3 |
しかし、text1 に複数の行が必要であるという問題が発生した場合は、TableLayout の列 0 を伸縮可能に設定すると同時に、text2 にも複数の行が必要になる可能性があるため、列も伸縮可能にする必要があり、結果が必要になります。次のようになります。
| | text1 多くの行が 40% を占めています | text2 は 20% かかります | text 3 多くの行で 40% |
そして、この問題が発生したとき、TableLayout の縮小列と拡大列を設定する方法が見つかりませんでした。また問題は、TableRow に 2 つまたは 3 つの子を含めることができることです。
LinearLayout と onGlobalLayout で遊んで数時間のテストを行い、それらのビューの重みをどれだけ取って調整したかを計算しましたが、それは非常に複雑で、常に機能するとは限りません。
ここから始めるべきいくつかのヒントを探しています.xmlでレイアウトを作成し、プログラムで作成する代わりにそれらを膨らませる必要があります.