Androidアプリケーションの開発を勉強中。
No.12
2011/06/08 (Wed) 02:28:33
以前どうやればいいんだーってなってたのが解決したので。
画面の高さ-キーボードの高さとか言ってたけどそんなことしなくてもよかった。
色々調べてたら、AndroidManifest.xmlの方に記述する「adjustPan」と「adjustResize」というものを発見。
Y.A.Mの雑記帳 Android Onscreen Input Methods
こちらに詳しく書いてあります。
こちらのブログにはほんとお世話になります……。
なんとなく私がやりたいことはadjustPanっぽいなあ。
……でもここにあるadjustResizeの2つ目の例の方がそれっぽいような気も……?
とりあえず、上のブログにあるサンプルを動かしてみた。
するとadujustPanは期待した動きをしてくれない。
うーん?
そしてadjustResizeの方はブログに書いてある通りに動く。
うーん。しかし私がやりたいことはそういう動きではないんですよね……。
色々悩んでいましたがはっと気づきました。
ここのサンプルでandroid:layout_weight="1"を設定したテキストボックスが、adjustResizeでサイズが変わっている……。
ということは、全体をスクロールビューに入れて、スクロールビューにandroid:layout_weight="1"を設定したらどうだろう。
これが正解でした。
ではサンプル。
そしてAndroidManifest.xmlのアクティビティタグの中に、
android:windowSoftInputMode="adjustResize"
をいれます。
するとこんな感じになります
キーボードが出てくるとスクロールビューのサイズが変わって、全体がスクロールするようになりました。
下部にあるボタンを常に表示させたい場合は、スクロールビューの中からボタンを出して、全体をさらにLinearLayoutでくくってあげればOKです。
こんな感じになります。
このサンプルのように、キーボードが出ていない時にスクロールビュー外にあるUIをスクロールビューのすぐ下に配置したい場合は、全体をくくっているLainearLayoutのandroid:layout_heightをwrap_contentにすればできます。
スクロールビュー外のUIを画面の1番下にもっていきたい場合はfill_parentにすればいいわけですね。
……なんだかうまく説明できていないような気もする。
ちなみに、スクロールビュー内のUIにandroid:layout_weightを使っても、残り余白いっぱいに広がってくれませんでした。
なので上の方法で、かつ中のUIにlayout_weightを使いたい場合どうすればいいのかはわかりません……。
画面の高さ-キーボードの高さとか言ってたけどそんなことしなくてもよかった。
色々調べてたら、AndroidManifest.xmlの方に記述する「adjustPan」と「adjustResize」というものを発見。
Y.A.Mの雑記帳 Android Onscreen Input Methods
こちらに詳しく書いてあります。
こちらのブログにはほんとお世話になります……。
なんとなく私がやりたいことはadjustPanっぽいなあ。
……でもここにあるadjustResizeの2つ目の例の方がそれっぽいような気も……?
とりあえず、上のブログにあるサンプルを動かしてみた。
するとadujustPanは期待した動きをしてくれない。
うーん?
そしてadjustResizeの方はブログに書いてある通りに動く。
うーん。しかし私がやりたいことはそういう動きではないんですよね……。
色々悩んでいましたがはっと気づきました。
ここのサンプルでandroid:layout_weight="1"を設定したテキストボックスが、adjustResizeでサイズが変わっている……。
ということは、全体をスクロールビューに入れて、スクロールビューにandroid:layout_weight="1"を設定したらどうだろう。
これが正解でした。
ではサンプル。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="100dip"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="200dip"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="OK"
/>
</LinearLayout>
</ScrollView>
そしてAndroidManifest.xmlのアクティビティタグの中に、
android:windowSoftInputMode="adjustResize"
をいれます。
するとこんな感じになります
キーボードが出てくるとスクロールビューのサイズが変わって、全体がスクロールするようになりました。
下部にあるボタンを常に表示させたい場合は、スクロールビューの中からボタンを出して、全体をさらにLinearLayoutでくくってあげればOKです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="100dip"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="200dip"
/>
</LinearLayout>
</ScrollView>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="OK"
/>
</LinearLayout>
こんな感じになります。
このサンプルのように、キーボードが出ていない時にスクロールビュー外にあるUIをスクロールビューのすぐ下に配置したい場合は、全体をくくっているLainearLayoutのandroid:layout_heightをwrap_contentにすればできます。
スクロールビュー外のUIを画面の1番下にもっていきたい場合はfill_parentにすればいいわけですね。
……なんだかうまく説明できていないような気もする。
ちなみに、スクロールビュー内のUIにandroid:layout_weightを使っても、残り余白いっぱいに広がってくれませんでした。
なので上の方法で、かつ中のUIにlayout_weightを使いたい場合どうすればいいのかはわかりません……。
PR
この記事にコメントする
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
最新記事
(03/13)
(01/08)
(06/08)
(05/29)
(05/28)
最新TB
プロフィール
HN:
柊里緒
性別:
女性
職業:
学生
自己紹介:
使用端末:IS05
この小ささがとても嬉しい。他のスマホ片手で使えません。
PC:Windows7(32ビット版)
最近やや不審な動きをするのが怖い。
備考:VOCALOID大好きです。
twitterやってます。
この小ささがとても嬉しい。他のスマホ片手で使えません。
PC:Windows7(32ビット版)
最近やや不審な動きをするのが怖い。
備考:VOCALOID大好きです。
twitterやってます。
カウンター
ブログ内検索
P R