59
Androidのlayout.xmlを学ぶ 14327日木曜日

Androidのlayout.xmlについて2

Embed Size (px)

DESCRIPTION

Androidのlayout.xmlの中身を見てみる資料 RelativeLayoutは使う場面をよく考えようという内容

Citation preview

Page 1: Androidのlayout.xmlについて2

Androidのlayout.xmlを学ぶ

14年3月27日木曜日

Page 2: Androidのlayout.xmlについて2

その2layout.xmlのファイルを見る

14年3月27日木曜日

Page 3: Androidのlayout.xmlについて2

ViewGroupとViewを組み合わせて

ViewGroup

Button

TextView

ListView

ImageView+

14年3月27日木曜日

Page 4: Androidのlayout.xmlについて2

Layoutを作る

Button

TextView

ListView

ImageView

14年3月27日木曜日

Page 5: Androidのlayout.xmlについて2

LinearLayout

• 最もよくお世話になる

• 縦or横にViewを並べることができる

• 等分割や割合を指定した分割が得意

• 階層が深くなりやすい

• 重くなる原因になるかも

14年3月27日木曜日

Page 6: Androidのlayout.xmlについて2

LinearLayout

View View View

横並びモード

14年3月27日木曜日

Page 7: Androidのlayout.xmlについて2

これを実際のlayout.xmlで見ると…14年3月27日木曜日

Page 8: Androidのlayout.xmlについて2

14年3月27日木曜日

Page 9: Androidのlayout.xmlについて2

LinearLayout

View

View

View

縦並びモード

14年3月27日木曜日

Page 10: Androidのlayout.xmlについて2

14年3月27日木曜日

Page 11: Androidのlayout.xmlについて2

14年3月27日木曜日

Page 12: Androidのlayout.xmlについて2

GUIで簡単に設定できる

14年3月27日木曜日

Page 13: Androidのlayout.xmlについて2

LinearLayout

• 最もよくお世話になる

• 縦or横にViewを並べることができる

• 等分割や割合を指定した分割が得意

• 階層が深くなりやすい

• 重くなる原因になるかも

14年3月27日木曜日

Page 14: Androidのlayout.xmlについて2

LinearLayout+layout_weight

均等割付

14年3月27日木曜日

Page 15: Androidのlayout.xmlについて2

layout_weight

余っている領域を指定した割合で分け合う

14年3月27日木曜日

Page 16: Androidのlayout.xmlについて2

ボタンの均等割付1:1:1

14年3月27日木曜日

Page 17: Androidのlayout.xmlについて2

14年3月27日木曜日

Page 18: Androidのlayout.xmlについて2

横画面にしても、解像度がかわっても大丈夫

14年3月27日木曜日

Page 19: Androidのlayout.xmlについて2

ボタンの均等割付1:2:1

14年3月27日木曜日

Page 20: Androidのlayout.xmlについて2

14年3月27日木曜日

Page 21: Androidのlayout.xmlについて2

FrameLayout

• けっこうお世話になる

• Viewを重ねることができる

14年3月27日木曜日

Page 22: Androidのlayout.xmlについて2

View

FrameLayout

View

画像の上に文字を乗せたりできる

14年3月27日木曜日

Page 23: Androidのlayout.xmlについて2

14年3月27日木曜日

Page 24: Androidのlayout.xmlについて2

14年3月27日木曜日

Page 25: Androidのlayout.xmlについて2

RelativeLayout

• 最強のレイアウト

• たまにお世話になる

• 相対的に配置する

• 無闇に使うとLayoutの構造が見えにくくなり、メンテしにくい

14年3月27日木曜日

Page 26: Androidのlayout.xmlについて2

RelativeLayout

View1

View2 View4

View3

View1の右隣

View2の下

View3の上で右端

View一番右下

14年3月27日木曜日

Page 27: Androidのlayout.xmlについて2

前ページのレイアウトはめんどくさかったのでこんな感じで許してください

14年3月27日木曜日

Page 28: Androidのlayout.xmlについて2

14年3月27日木曜日

Page 29: Androidのlayout.xmlについて2

RelativeLayoutを使いすぎるとなぜメンテしにくくなるか

14年3月27日木曜日

Page 30: Androidのlayout.xmlについて2

例えば以下のようなレイアウトheader

footer

main

14年3月27日木曜日

Page 31: Androidのlayout.xmlについて2

LinearLayoutで作ると

14年3月27日木曜日

Page 32: Androidのlayout.xmlについて2

14年3月27日木曜日

Page 33: Androidのlayout.xmlについて2

上から順にheader,main,footerときれいな階層構造で見やすい

14年3月27日木曜日

Page 34: Androidのlayout.xmlについて2

RelativeLayoutで作ると

14年3月27日木曜日

Page 35: Androidのlayout.xmlについて2

RelativeLayoutで作ると

14年3月27日木曜日

Page 36: Androidのlayout.xmlについて2

14年3月27日木曜日

Page 37: Androidのlayout.xmlについて2

何も問題ない?

14年3月27日木曜日

Page 38: Androidのlayout.xmlについて2

android-apt-compiler: [Sample] /Users/masahide/src/Sample/res/layout/main.xml:11: error: Error: No resource found that matches the given name (at

'layout_above' with value '@id/footer').

エラーが出ます

footerのidが見つからないと申しております

14年3月27日木曜日

Page 39: Androidのlayout.xmlについて2

footerのidがまだ定義されていない14年3月27日木曜日

Page 40: Androidのlayout.xmlについて2

じゃあどうするか?

14年3月27日木曜日

Page 41: Androidのlayout.xmlについて2

footerのレイアウトを上に持っていけば解決

14年3月27日木曜日

Page 42: Androidのlayout.xmlについて2

それと同時にレイアウト崩壊の始まり

14年3月27日木曜日

Page 43: Androidのlayout.xmlについて2

14年3月27日木曜日

Page 44: Androidのlayout.xmlについて2

footerがmainの上にあって気持ち悪い

14年3月27日木曜日

Page 45: Androidのlayout.xmlについて2

さらにViewを追加することを考えてみる

14年3月27日木曜日

Page 46: Androidのlayout.xmlについて2

headerの下にviewを追加してみる

14年3月27日木曜日

Page 47: Androidのlayout.xmlについて2

LinearLayoutの場合

14年3月27日木曜日

Page 48: Androidのlayout.xmlについて2

headerとmainの間に差し込むだけで良い

14年3月27日木曜日

Page 49: Androidのlayout.xmlについて2

RelativeLayoutの場合

14年3月27日木曜日

Page 50: Androidのlayout.xmlについて2

headerと被ってダメ

14年3月27日木曜日

Page 51: Androidのlayout.xmlについて2

各Viewとの関係性も調整しないといけない

14年3月27日木曜日

Page 52: Androidのlayout.xmlについて2

• 現在mainはheaderの下、footerの上にある

• 新たに追加するheader2はheaderの下、mainの上に来るようにする

• するとmainの位置がおかしくなるから、mainはheader2の下、footerの上に来るように調整する

こんな風に考えないといけない

14年3月27日木曜日

Page 53: Androidのlayout.xmlについて2

14年3月27日木曜日

Page 54: Androidのlayout.xmlについて2

メンテナンスが大変もっと関係性が複雑になると死ねる

14年3月27日木曜日

Page 55: Androidのlayout.xmlについて2

RelativeLayoutは便利だけど使い所が難しい

14年3月27日木曜日

Page 56: Androidのlayout.xmlについて2

• LinearLayoutとFrameLayoutで実現できない場合

• 階層が深くなりすぎる場合

• RelativeLayout使う場合でもViewの構造は上から順を保つ

個人的にRelativeLayoutを使う所

14年3月27日木曜日

Page 57: Androidのlayout.xmlについて2

今日のまとめ• LinearLayoutとlayout_weightは超便利

• Viewの構造は綺麗に保つ(基本上から順になるように)のが良い

• メンテナンス性を意識する

• RelativeLayoutは難しい

14年3月27日木曜日

Page 58: Androidのlayout.xmlについて2

次回予告

• Layoutのマルチデバイス対応とか?

• そろそろHello Worldしてみるとか?

14年3月27日木曜日

Page 59: Androidのlayout.xmlについて2

ご清聴ありがとうございました

14年3月27日木曜日