SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Android Studioの新バージョン2.3をCheck It Out!

Androidアプリの新レイアウト「ConstraintLayout」をCheck It Out!

Android Studioの新バージョン2.3をCheck It Out! 後編

layout_width/height

 次に名前の入力欄であるEditTextを追加しながら、ConstraintLayoutで独特の働きをするlayout_width/heightについて解説していきましょう。

EditTextの追加

 先ほどと同様の手順で、今度はPaletteから[Plain Text]をドラッグ&ドロップし、PropertiesでIDを「etName」と設定を行ってください。さらに[Text]に記述されている「Name」を削除してください。その上で、上の制約ハンドルをtvNameの下の制約ハンドルまで、左の制約ハンドルを親レイアウトの境界までドラッグしてください。

 図10のようになります。

図10 etNameの追加
図10 etNameの追加

センタリング

 この状態ではetNameは左に寄ってしまっているので、センタリングします。これは右の制約を追加することで可能となります。右の制約ハンドルを親レイアウトの境界までドラッグしてください。図11のように無事センタリングされました。

図11 センタリングされたetName
図11 センタリングされたetName

Match Constraints

 ただ、この状態は当初の目標と異なります。etNameの幅を親いっぱいまで広げないといけません。これまでの考えですぐに思い浮かぶのはlayout_width属性にmatch_parentを設定することですが、残念ながらConstraintLayoutでmatch_parentは使ってはいけないことになっています。代わりに使うのがMatch Constraintsという設定で、これは制約の中でいっぱいに広げることを意味しています。ただし、match_constraintsという設定値はなくlayout_widthの値として0dpを設定します。

 では早速Propertiesから設定します。layout_width項目に直接入力してもいいですが、ここでは別の方法を紹介します。現在、Propertiesの制約表示部分は図12のようになっています。

図12 Propertiesの制約表示
図12 Propertiesの制約表示

 この、の部分をクリックしてください。

 すると、の3種類に変化します。ConstraintLayoutでは、この3種類のlayout_width/heightを設定することが可能で、それぞれ名前がついています。

Wrap Content

 が該当し、設定値はwrap_contentです。これは通常のレイアウトのwrap_contentと同じです。

Fixed

 が該当し、設定値は具体的な数値です。

Match Constraints

 が該当し、設定値は0dpです。

 ここでは、Match Constraintsを選択してください。図13のように、親部品いっぱいまでetNameが広がっていることが確認できます。

図13 Match Constraintsが設定されたetName
図13 Match Constraintsが設定されたetName

残りの部品の配置

 では、残りの部品を配置していきましょう。

「メールアドレス」ラベル

 [TextView]をドラッグ&ドロップし、Propertiesで以下の設定を行ってください。

  • ID:tvMail
  • text:@string/tv_mail

 その上で、上の制約ハンドルをetNameの下の制約ハンドルまで、左の制約ハンドルを親レイアウトの境界までドラッグしてください。

「メールアドレス」入力欄

 [Plain Text]をドラッグ&ドロップし、PropertiesでIDを「etMail」と設定を行ってください。さらに[Text]に記述されている「Name」を削除しておいてください。その上で、上の制約ハンドルをtvMailの下の制約ハンドルまで、左右の制約ハンドルを親レイアウトの境界までドラッグしてください。最後にlayout_widthの値として0dp、Match Constraintsの設定を行ってください。

「質問内容」ラベル

 [TextView]をドラッグ&ドロップし、Propertiesで以下の設定を行ってください。

  • ID:tvComment
  • text:@string/tv_comment

 その上で、上の制約ハンドルをetMailの下の制約ハンドルまで、左の制約ハンドルを親レイアウトの境界までドラッグしてください。

「質問内容」入力欄

 質問内容は複数行のため[Multiline Text]を使用します。これをドラッグ&ドロップし、PropertiesでIDを「etComment」と設定を行ってください。上の制約ハンドルから、tvCommentの下の制約ハンドルまで、左右の制約ハンドルを親レイアウトの境界までドラッグしてください。最後にlayout_widthの値としてMatch Constraintsの設定を行ってください。

 ここまでの手順を行うと、図14のようになります。

図14 全部品が配置された状態
図14 全部品が配置された状態

layout_heightにMatch Constraints

 ただ、このままではetCommentが縦方向に広がっていません。これを修正しましょう。これはMatch Constraintsをlayout_heightに適用するだけです。まず、etCommentの下側の制約ハンドルを親レイアウトの境界までドラッグしてください。すると、図15のように縦方向にセンタリングされます。

図15 etCommentに下側の制約を追加
図15 etCommentに下側の制約を追加

 その上で、縦方向のに変更し、layout_heightにMatch Constraintsを設定します。すると図16のように変化します。

図16 目標の画面が完成
図16 目標の画面が完成

 この状態でアプリを起動してみてください。無事、図3の画面が表示されたと思います。

次のページ
横並びに変更も簡単

この記事は参考になりましたか?

Android Studioの新バージョン2.3をCheck It Out!連載記事一覧
この記事の著者

WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/10228 2017/06/19 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー