Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

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

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2017/06/19 14:00

 2017年3月、Android Studioの新バージョン2.3がリリースされました。注目すべき点は、なんといっても2.2から導入されたConstraintLayoutが安定したことです。他にも、画像ファイルのWebP形式への変換や、Instant Runの機能向上など、注目に値する新機能が追加されました。この連載では、前後編の2回にわたってAndroid Studio 2.3の新機能を紹介します。後編である今回は、最も注目すべき点であるConstraintLayoutを紹介します。

目次

対象読者

  • Androidアプリ開発者

ConstraintLayoutとは

 ConstraintLayoutの具体的な使い方の解説に入る前に、まずConstraintLayoutについて解説しておきましょう。

ConstraintLayoutがデフォルトレイアウト

 ConstraintLayoutはAndroid Studio2.2で追加された新しいレイアウトです。Android Studioで新しいプロジェクトを作成する際に、レイアウトファイルにデフォルトで書かれていたレイアウトは、2.2まではRelativeLayoutでした。これが、2.3からはこのConstraintLayoutがデフォルトに変更されています。それに伴い、Android Studioのレイアウトエディタで、このConstraintLayoutを使った画面作成が非常にやりやすくなっています。

ConstraintLayoutの特徴

 ConstraintLayoutは、RelativeLayoutと同じく、画面部品を相対的に配置するレイアウトです。タグの記述はレイアウト部品を入れ子にせず、並列に記述することが可能です。一方、部品同士の配置の指定方法がRelativeLayoutより簡単になりました。そのポイントはレイアウト名にあるConstraint、つまり「制約」にあります。RelativeLayoutでは、ある部品を基点としてそこからの相対配置を行いました。ConstraintLayoutではこの基点も存在せず、全ての部品を相対指定します。

 例えば、下図を見てください。

図1 ConstraintLayoutの考え方
図1 ConstraintLayoutの考え方

 部品Dに対して水平方向(横方向)の左側に部品Cが、垂直方向(縦方向)の上側に部品Bが存在しています。このように、ある部品の縦方向と横方向にどんな部品が存在するかの指定を「制約」と呼んでいます。これらの制約は少なくとも縦横それぞれにひとつずつ指定すればよく、上下左右全てを指定する必要はありません。また、指定先として親部品も使えます。

 例えば、部品Aは左方向と上方向に親部品を指定しています。ここで注目すべきは部品Aは左方向と上方向に親部品を指定することで、すでに縦横それぞれに一つずつ制約を指定しているため、これ以上の設定は不要なのです。そのため、「右側に画面部品Bがある」や「下側に画面部品Cがある」といった設定は不要です。設定しても問題はありませんが、部品Bで「左に部品Aがある」と設定している場合には不要です。

 この考え方によって、非常に簡単で柔軟なレイアウトを実現することができようになりました。今回はサンプルの作成を通じて、この「簡単さ」「柔軟さ」を体感していただきましょう。

サンプルプロジェクト作成

 では早速、今回使用するサンプルプロジェクトを作成しておきましょう。

ライブラリの追加

 実際のプロジェクト作成に入る前に、ライブラリを追加しておきましょう。ConstraintLayoutは通常のSDKとは別ライブラリのため、あらかじめインストールしておく必要があります。[SDK Manager]を表示し、[SDK Tools]タブを表示させてください。右下の[Show Package Details]チェックボックスにチェックを入れ、詳細を表示させます。図2のように[Support Repository]を展開し、「ConstraintLayout for Android」と「Solver for ConstraintLayout」の最新版がインストールされているかどうか確認してください。

図2 ConstraintLayoutライブラリの確認
図2 ConstraintLayoutライブラリの確認

 インストールされていない場合は、チェックを入れてインストールしてください。

プロジェクト情報

 ではプロジェクトを作成しましょう。以下がプロジェクト情報です。

  • Application name:ConstraintLayoutSample
  • Company Domain:android.wings.websarva.com
  • Package name:com.websarva.wings.android.newfeaturessample
  • Project location:C:\…任意のワークフォルダ…\NewFeaturesSample
  • Phone and Tablet Minimum SDK:API 15
  • Add an activity:Empty Activity
  • Activity Name:ConstraintLayoutActivity
  • Layout Name:activity_constraint_layout

strings.xmlの記述

 プロジェクトが作成できたら、strings.xmlを以下の内容に変更してください。

strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">ConstraintLayoutサンプル</string>
    <string name="tv_title">必要な情報を入力してください。</string>
    <string name="tv_name">名前</string>
    <string name="tv_mail">メールアドレス</string>
    <string name="tv_comment">質問内容</string>
</resources>

 この状態からactivity_constraint_layout.xmlファイルを改変していきますが、今回はソースコードの記述ではなく、レイアウトエディタのデザインモードを使い、GUI上で操作していきます。また、レイアウトファイルのみの改変のため、Javaソースコードは記述しません。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

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

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2017年5月時点での登録メンバは52名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂き...

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

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:Android Studioの新バージョン2.3をCheck It Out!
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5