SHOEISHA iD

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

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

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

Web APIで楽々Androidアプリ

Androidアプリでの、スマホとタブレットのレイアウト自動切り替え

Web APIで楽々Androidアプリ(9)

1ペインのレイアウトを変更する

 これで、タブレット向けには地図と一覧の2ペイン表示、スマートフォン向けには地図の1ペイン表示が自動で切り替わるようになりました。ただ、1ペイン表示では、地図だけとなり、少々寂しいので、一覧表示もオーバーラップして表示できるようにしてみましょう。

1ペインの初期画面
1ペインの初期画面
最寄り駅一覧のオーバーラップ表示
最寄り駅一覧のオーバーラップ表示

 左上のナビゲーションアイコンをタップすることで、一覧表示の表示、非表示を切り替えられるようにします。

選択されたレイアウトの判断

 1ペイン表示に機能を追加していく前に、まずは、現在の画面が、1ペインなのか、2ペインなのかを判定する必要があります。

 この判定にも、いくつか方法があるのですが、さきほどのエイリアス定義したファイルに、判別用のフラグも定義しておく方法が簡単です。次のサンプルのような、Bool(trueかfalseの真偽値)というResourceタイプを追加しておきます。

values/layouts.xml
<resources>
    <item name="main_layout" type="layout">@layout/onepane</item>
    <bool name="is_one_pane">true</bool>
</resources>
values-sw600dp-land/layouts.xml、values-sw720dp/layouts.xml
<resources>
    <item name="main_layout" type="layout">@layout/twopanes</item>
    <bool name="is_one_pane">false</bool>
</resources>

 このように定義しておくと、getResourcesメソッドを利用して、is_one_paneの値を参照すれば、1ペインか否かを判別することができます。

次のページ
最後に

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

Web APIで楽々Androidアプリ連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、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編 」他、著書多数

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

WINGSプロジェクト 高江 賢(タカエ ケン)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7658 2014/03/19 14:00

イベント

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

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

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

メールバックナンバー