縦スクロールが存在する画面において、常に画面下部にボタンを表示する方法について

3,885 views
Skip to first unread message

yama

unread,
Oct 1, 2010, 11:39:15 AM10/1/10
to Android-SDK-Japan
件名の通り

縦スクロールが存在する画面において、常に画面下部にボタンを表示する方法
について、見当つきません。。。

例えば、001Activity >> 002Activityに遷移後、002Activity>>001Activity
に戻るようのボタンを配置したいのですが、002Activityの画面は縦に長く
スクロールしてボタンを押してもらう手間をかけさせたくないので、
常に画面下部に戻るボタンを表示させたいのです。

もしご存知の方、お手数おかけしますが、教えていただけないでしょうか。
参考となるURLでも、ヒントでもなんでも構いません。

あんざいゆき

unread,
Oct 1, 2010, 11:57:25 AM10/1/10
to android-...@googlegroups.com
あんざいです。

 こんなかんじでどうですか?
 ScrollView の中身は自分のアプリのレイアウトに
 変えてください。


<?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="fill_parent"
    >
    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        >
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
        >
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@android:drawable/ic_menu_help"
            />
        </LinearLayout>
       </ScrollView>
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Back" />
 </LinearLayout>


2010年10月2日0:39 yama <yamach...@gmail.com>:

--
このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグループにアクセスしてください。




--
あんざい ゆき
anzai...@gmail.com
twitter : @yanzm

yama

unread,
Oct 1, 2010, 8:00:31 PM10/1/10
to Android-SDK-Japan
投稿者のやまです。

助言ありがとうございます。
教えて頂いたように、ScrollView の枠の外にButtonを配置しました。
ただ、そのButtonが画面の何処にも表示されませんでした。
> 2010年10月2日0:39 yama <yamachanda...@gmail.com>:
>
>
>
> > 件名の通り
>
> > 縦スクロールが存在する画面において、常に画面下部にボタンを表示する方法
> > について、見当つきません。。。
>
> > 例えば、001Activity >> 002Activityに遷移後、002Activity>>001Activity
> > に戻るようのボタンを配置したいのですが、002Activityの画面は縦に長く
> > スクロールしてボタンを押してもらう手間をかけさせたくないので、
> > 常に画面下部に戻るボタンを表示させたいのです。
>
> > もしご存知の方、お手数おかけしますが、教えていただけないでしょうか。
> > 参考となるURLでも、ヒントでもなんでも構いません。
>
> > --
> > このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> > このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
> > このグループから退会するには、android-sdk-ja...@googlegroups.com<android-sdk-japan%2Bunsu...@googlegroups.com>にメールを送信してください。
> > 詳細については、http://groups.google.com/group/android-sdk-japan?hl=jaからこのグループにアクセスしてください。
>
> --
> あんざい ゆき
> anzai.y...@gmail.com
> twitter : @yanzm

mokkouyou

unread,
Oct 1, 2010, 8:26:25 PM10/1/10
to android-...@googlegroups.com
mokkouyouです。

このMLでも数回同じような要望があがっていて、
ソースつきで詳しいコメントをされていた方がいらっしゃったと記憶していますので
検索してもらってもいいかとおもいますが、

概要としては、
RelativeLayoutを利用して、
ボタンなどの領域、
メインで描画したい領域を定義し、
メインの領域をフッタの上に描画と指定
という手順でいけるはずです。

以下はイメージどおりの事していると思います。

2010年10月2日9:00 yama <yamach...@gmail.com>:
このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグループにアクセスしてください。




--
mokkouyou
mokk...@gmail.com

mokkouyou

unread,
Oct 1, 2010, 8:36:48 PM10/1/10
to android-...@googlegroups.com
mokkouyouです。

>このMLでも数回同じような要望があがっていて、

すいません、
こちらのMLではなく、よそのMLでした。
こちらだと検索してもひっかからないかと・・・
お騒がせしました。

2010年10月2日9:26 mokkouyou <mokk...@gmail.com>:
RelativeLayout



--
mokkouyou
mokk...@gmail.com

あんざいゆき

unread,
Oct 1, 2010, 8:47:42 PM10/1/10
to android-...@googlegroups.com
やまさん

 layout_width, layout_height, layout_weight
 
 は下記のコードと同じになってますか?

 
>     <ScrollView
>         android:layout_width="fill_parent"
>         android:layout_height="wrap_content"
>         android:layout_weight="1"
>         >

 ここの layout_height を fill_parent にすると、下の
 ボタンがでなくなります。 layout_weight="1" というのは
 ボタン以外の領域をこの ScrollView で占めるということです。
 まずは、添付したコードをコピペして試してください。

あんざい


2010年10月2日9:00 yama <yamach...@gmail.com>:
このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグループにアクセスしてください。

Jun'ichi Hirayama

unread,
Oct 2, 2010, 5:14:31 PM10/2/10
to android-...@googlegroups.com
ひらやまといいます。
あんざいさんの回答で十分と思いますが、一応
下記にOHAのEメールアプリのメール編集画面でつかっているレイアウトへのリンクを
はります。基本的にやっていることは変わりませんが、例は多い方がよいとおもうのでお知らせします。




--
BR
Jun'ichi

yama

unread,
Oct 3, 2010, 10:43:52 AM10/3/10
to Android-SDK-Japan

あんざいさん

やまです。
返事が遅くなりすみません。
layout_weightを指定していなかったため、ボタンが表示されませんでした。

ただ、layout_weightについてしっかりとした理解ができなかったため、
ネットで調べてみたところ、以下の記事がでてきました。

例を挙げるとすると、テキストラベルと 2 つのテキスト入力要素が横並びにあると仮定します。ラベルには layout_weight が未指定で、
最小限のスペースを占めるようにレンダリングされます。2 つのテキスト入力の layout_weight がそれぞれ 1 に設定されている場合、
親のレイアウトの残りの幅はそれらの間で同じだけ分割されます。

http://webcache.googleusercontent.com/search?q=cache:JIRzOsJFb54J:www.techdoctranslator.com/resources/tutorials/notepad/notepad-ex2+layout_weight&cd=5&hl=ja&ct=clnk&gl=jp&client=firefox-a

今回の場合についても、これが適用され、button(weight=0)以外の余白をscrollview(weight=1)で占める。
という意味と理解しました。ただ、
「layout_weight が未指定で、最小限のスペースを占めるようにレンダリングされます。」
とのことより、scrollviewもbuttonも未指定の0を指定した場合には?どちらも
表示されるというわけではないんですね。(実際にやってみたらボタンがでなかったので。)

それと、、、scrollview と layout_weighをキーワードにグーグル検索したら
たくさんヒットしました。すみません。。

On 10月2日, 午前9:47, あんざいゆき <anzai.y...@gmail.com> wrote:
> やまさん
>
> layout_width, layout_height, layout_weight
>
> は下記のコードと同じになってますか?
>
> > <ScrollView
> > android:layout_width="fill_parent"
> > android:layout_height="wrap_content"
> > android:layout_weight="1"
>
> ここの layout_height を fill_parent にすると、下の
> ボタンがでなくなります。 layout_weight="1" というのは
> ボタン以外の領域をこの ScrollView で占めるということです。
> まずは、添付したコードをコピペして試してください。
>
> あんざい
>
> 2010年10月2日9:00 yama <yamachanda...@gmail.com>:
> > <android-sdk-japan%2Bunsu...@googlegroups.com<android-sdk-japan%252Buns...@googlegroups.com>
> > >にメールを送信してください。
> > > > 詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja
> > からこのグループにアクセスしてください。
>
> > > --
> > > あんざい ゆき
> > > anzai.y...@gmail.com
> > > twitter : @yanzm
>
> > --
> > このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> > このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。

yama

unread,
Oct 3, 2010, 10:58:47 AM10/3/10
to Android-SDK-Japan
mokkouyouさん

やまです。
返事が遅くなりすみません。
参照先のwebサイトを確認させて頂きました。

参照先で例として広告表示について話をされていましたが、
表示・非表示をEnableやdisable指定で簡単にできるなら、
使いやすそうでいいですね。
広告表示の方法についても興味があったので、今回の機会に
学習できてよかったです。
お気に入りに入れときます :)

ただ、今回はlayout_weightの重み付けで対応しようかと思います。
まだ、あまりRelativeLayoutになれていないので。。。

教えてくださりありがとうございました。


On 10月2日, 午前9:26, mokkouyou <mokkou...@gmail.com> wrote:
> mokkouyouです。
>
> このMLでも数回同じような要望があがっていて、
> ソースつきで詳しいコメントをされていた方がいらっしゃったと記憶していますので
> 検索してもらってもいいかとおもいますが、
>
> 概要としては、
> RelativeLayoutを利用して、
> ボタンなどの領域、
> メインで描画したい領域を定義し、
> メインの領域をフッタの上に描画と指定
> という手順でいけるはずです。
>
> 以下はイメージどおりの事していると思います。http://mokkouyou.blog114.fc2.com/blog-entry-58.html
>
> 2010年10月2日9:00 yama <yamachanda...@gmail.com>:
> > <android-sdk-japan%2Bunsu...@googlegroups.com<android-sdk-japan%252Buns...@googlegroups.com>
> > >にメールを送信してください。
> > > > 詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja
> > からこのグループにアクセスしてください。
>
> > > --
> > > あんざい ゆき
> > > anzai.y...@gmail.com
> > > twitter : @yanzm
>
> > --
> > このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> > このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
> > このグループから退会するには、android-sdk-ja...@googlegroups.com<android-sdk-japan%2Bunsu...@googlegroups.com>にメールを送信してください。
> > 詳細については、http://groups.google.com/group/android-sdk-japan?hl=jaからこのグループにアクセスしてください。
>
> --
> mokkouyou
> mokkou...@gmail.com

yama

unread,
Oct 3, 2010, 11:11:11 AM10/3/10
to Android-SDK-Japan
ひらやまさん

やまです。
最初、OHAがわからなくて調べてしまいました(笑)
この記載内容を見る方のために、一応、説明載せときます。

■OHA
オープン・ハンドセット・アライアンス (Open Handset Alliance, OHA) は、携帯電話の共通ソフトウエア
「Android」の開発を推進するために組織された団体。

参考として挙げて頂いたURL先も拝見させて頂きました。
1つのViewに対して設定しているmarginやheight等のオプションが大量にあり、
ちょっと現段階の私には敷居が少し高そうに感じました(笑)

ただ、大枠で捉えた場合、ScrollViewがweight=1で設定され、
同じ階層にLinearLayoutがweight=0で設定されてました。

教えてくださり、ありがとうございました。


On 10月3日, 午前6:14, "Jun'ichi Hirayama" <hiraya...@gmail.com> wrote:
> ひらやまといいます。
> あんざいさんの回答で十分と思いますが、一応
> 下記にOHAのEメールアプリのメール編集画面でつかっているレイアウトへのリンクを
> はります。基本的にやっていることは変わりませんが、例は多い方がよいとおもうのでお知らせします。
>
> http://android.git.kernel.org/?p=platform/packages/apps/Email.git;a=b...
>
> 2010/10/2 あんざいゆき <anzai.y...@gmail.com>
>
>
>
> > やまさん
>
> > layout_width, layout_height, layout_weight
>
> > は下記のコードと同じになってますか?
>
> > > <ScrollView
> > > android:layout_width="fill_parent"
> > > android:layout_height="wrap_content"
> > > android:layout_weight="1"
>
> > ここの layout_height を fill_parent にすると、下の
> > ボタンがでなくなります。 layout_weight="1" というのは
> > ボタン以外の領域をこの ScrollView で占めるということです。
> > まずは、添付したコードをコピペして試してください。
>
> > あんざい
>
> > 2010年10月2日9:00 yama <yamachanda...@gmail.com>:
> >> <android-sdk-japan%2Bunsu...@googlegroups.com<android-sdk-japan%252Buns...@googlegroups.com>
> >> >にメールを送信してください。
> >> > > 詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja
> >> からこのグループにアクセスしてください。
>
> >> > --
> >> > あんざい ゆき
> >> > anzai.y...@gmail.com
> >> > twitter : @yanzm
>
> >> --
> >> このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> >> このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
> >> このグループから退会するには、android-sdk-ja...@googlegroups.com<android-sdk-japan%2Bunsu...@googlegroups.com>にメールを送信してください。
> >> 詳細については、http://groups.google.com/group/android-sdk-japan?hl=jaからこのグループにアクセスしてください。
>
> > --
> > あんざい ゆき
> > anzai.y...@gmail.com
>
> > twitter : @yanzm
>
> > --
> > このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> > このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
> > このグループから退会するには、android-sdk-ja...@googlegroups.com<android-sdk-japan%2Bunsu...@googlegroups.com>にメールを送信してください。
> > 詳細については、http://groups.google.com/group/android-sdk-japan?hl=jaからこのグループにアクセスしてください。
>
> --
> BR
> Jun'ichi
Reply all
Reply to author
Forward
0 new messages