私の目標は、ユーザーが画面にコントロールを追加できるように、自動フォームジェネレーターを作成することです。また、コントロールの幅は異なる必要があります。
例:
ユーザーはEditText、画面の幅を使用するを追加し、CheckBoxその後にを追加して、のEditText下に配置することができますEditText。また、画面の残りの幅を使用するボタンまたはスピナーを追加することもできます。ユーザーは、必要なすべてのコントロールを実行できます。
どうすればこの目標を達成できますか?
私の目標は、ユーザーが画面にコントロールを追加できるように、自動フォームジェネレーターを作成することです。また、コントロールの幅は異なる必要があります。
例:
ユーザーはEditText、画面の幅を使用するを追加し、CheckBoxその後にを追加して、のEditText下に配置することができますEditText。また、画面の残りの幅を使用するボタンまたはスピナーを追加することもできます。ユーザーは、必要なすべてのコントロールを実行できます。
どうすればこの目標を達成できますか?
グリッドビューの代わりに、複数の TableRow 要素を持つ TableLayout を使用できます。
興味深いのは、列の幅が列内の最も幅の広い要素の幅によって定義されることです。
詳細については、TableLayout のドキュメントを参照してください。
TableLayout多くのネストされたレイアウトを使用するなど、それを行う方法はいくつかあります。
このTableLayout方法は、探しているものを実装するためのおそらく最良かつ最も簡単な方法です。
画面の幅に応じて動的にレイアウトを変更したい場合、2 つの方法があります。
方法 1 xml レイアウト ファイルを使用する代わりに、プログラムでレイアウトを作成します。このようにして、計算を行ったり、その場で変更したりできます。
方法 2これはおそらく私が行う方法です。画面密度、向き、サイズごとに異なるレイアウト ファイルを含めます。