どろあそび (2)
Android Developerのトレーニングコース「Android Kotlinの基礎」をやってみてます。
レッスン1では開発環境であるAndroid Studioの使い方と簡単なアプリケーションによるアプリケーション開発手順の理解という感じで、レッスン2からが機能単位での学習という感じのようです。
ということでレッスン2: レイアウトをやってみました。
レッスン2は以下の3項目で構成されてます。
最初の項目「LinearLayout using the Layout Editor」では基本的な縦または横一列にUI要素を配列するリニアレイアウト (LinearLayout) ViewGroupと画面より大きいレイアウト要素を表示するためのスクロールビュー (ScrollView) ViewGroupを扱います。
リニアレイアウトは縦向き・横向きをレイアウトのプロパティで指定する形式になっています。プロパティを変更すれば縦向き・横向きを動的に切り替えることができるはずですが、残念ながら要素のサイズを配置に基づいて自動調節してくれるわけではないので、横向きと縦向きで別々のレイアウトを作成する必要がありそうです。
2番目の項目「Add user interactivity」は文字列入力要素のEditTextを使用した文字入力とボタン操作、そしてUI要素の可視性 (Visibility) プロパティを扱います。
UI要素の可視性には可視 (VISIBLE)、不可視 (INVISIBLE) に加えて表示されないだけでなく表示のための領域も確保しないGONEという設定があり、これを使用すれば同じ位置に複数のUI要素を重ねて配置しなくても並べて配置するだけで表示の切り替えが実現できるとともに、切り替える表示要素の大きさの違いに合わせてレイアウトが自動的に調整されるという利点があります。
まあ、レイアウトの自動調整が入る分だけレイアウト設計が難しくなりそうな気もするけど、簡単なアプリでは便利そうです。
3番目の項目「ConstraintLayout using the Layout Editor」はUI要素間の関係を制約として記述することで自動配置が可能になる制約レイアウト (ConstraintLayout) を扱っています。
制約レイアウトを使用すると、レイアウト中のUI要素サイズが配置に応じて自動的に調整されるため、より楽に画面設計ができるようです。
とはいえ、制約としては隣の要素を指定できるだけなので、ちょっと凝ったレイアウトを行う場合には複数のレイアウト要素を組み合わせると言ったことが必要になるかもしれません。
また、制約レイアウトのポイントとして文字列のベースラインを揃えることが可能になっています。これは入力文字列とボタンが並んでいる場合などに気持ちいいレイアウトができるので、結構良さそうな機能だと考えています。
ただ、高さの違う要素を一列に並べる場合、上下の制約をどの要素に設定するかによって何らかの問題が発生するような気もするので、制約レイアウトに関しては慣れと研究が必要そうです。
0コメント