はじめまして。
わたくしは先日からAndroidの勉強をし始めたのですが、分からない事があるので投稿させて頂きました。
Androidアプリでよく見かける画面の下部に常時表示されているツールバー?を作成したいと思っております。(添付データAのようなもの)
試しにTabHostとTabWidgetを使用して添付画像Bを作りました。画面端からの余白が気になりますが、作成方法としてはこのような方法でよろしいのでしょうか。
漠然とし過ぎた質問で申し訳ありませんが、コメントを頂けると幸いです。
環境はandroid2.3.3です。
No.1ベストアンサー
- 回答日時:
おそらく、普通はButtonを下部にLinearLayoutで横一列に配置するような形で実装しているんじゃないかと思います。
中央のコンテンツ部分の高さを自動調整することで常に下部にバーが表示されるようにするわけですね。TabHostを使ったやり方は、もちろん間違いではないのですが、これはAndroid 4.0からdeprecatedになっていますから、今後は使われなくなります。それをわかった上で現行機種のみ対象にアプリを作るのであれば問題ないでしょう。2.3.3を利用しているとのことですから、その環境であれば全く問題ありません。
ただ、Android 3.0からActionBarというのが追加になっており、3.0以降はこちらを使うのが一般的になっています。これは、それまでオプションメニューとして組み込まれていたものをバーの形で強化したUIです。マニフェストファイルで、<activity>にandroid:uiOptions="splitActionBarWhenNarrow"というのを追加すると、スマートフォンの縦長画面では、メニューが自動的に画面下部にアイコンバーとして表示されるようになります。タブ表示のスタイルもサポートしています。
おそらく「最近のアプリでよく見る」というのは、このアクションバーを使ったUIのことでしょう。ただしこれは3.0以前は使えないので、それ以前のバージョンではこのアクションバーをエミュレートするような形で独自に実装されているように思えます。
また、ツールバーというのを、「タブを使って複数のActivityを切り替える」という目的で使うのであれば、更に違った実装が現在は推奨されています。Fragmentと呼ばれるAPIを利用したもので、これの導入により、例えば画面サイズが大きいとタブ切り替え表示になり、画面が小さい場合にはメニューをクリックしたらアクティビティ画面になるといった2画面方式に切り替わる、というような「スマートフォンとタブレットのUI切り替え」のような処理が実装できます。
とりあえず、現在のTabHost利用のスタイルはAndroid 4.0以降が一般に普及するまで使われ続けると思います。ですので、そのやり方で覚えておいて今は問題ありません。が、おそらく1~2年もすれば4.0以降が大半になっているでしょうから、そうなったときにはActionBar方式に切り替えることになるのでこちらの使い方も勉強しておくと良いでしょう。また、Fragmentは今後必須の実装となりますので、タブ切り替え表示についてはこちらも少しずつ学習されることをお勧めします。
chiiba_kun様、
ご回答ありがとうございます。
なるほど、ActionBarという機能があるんですね。
調べてみたところご教授頂いたとおりAndroid2.3.3でも使用出来るみたいですが、学びはじめて日も浅いのでまずはTabHostを利用して作成し、基本的な部分を固めていこうかと思います。
とても分かりやすく丁寧に回答して頂き感謝しております、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 画像編集・動画編集・音楽編集 AfterEffectでのシャターの挙動がおかしい 1 2023/05/07 00:38
- Illustrator(イラストレーター) クリップスタジオペイントについて。 1 2022/11/15 11:38
- Android(アンドロイド) PayPayでアンドロイドスマホのアカウント画面の表示のポイントの使い方が知りたい 画像添付 5 2022/05/26 10:58
- その他(ブラウザ) bingチャットの内容(縦長)をスクリーンショットで保存する方法 3 2023/02/28 02:13
- 電子マネー・電子決済 QUICPayの登録ができない。 4 2023/06/10 10:57
- フリーソフト libreoffice drawのツールバーのチェックが外れてしまう 1 2022/10/04 22:02
- Windows 10 「新規作成」メニューが表示されません 2 2023/04/07 14:56
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- Photoshop(フォトショップ) 画像編集ソフトPhotopeaのツールバーなどの文字の大きさを変える方法を教えてください。 1 2023/02/25 19:09
- Windows 10 パソコンが使えず困ってます!(Microsoftアカウントでログイン後、PINコードに関するエラー) 2 2023/03/17 19:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
プログラミングで例えばゲーム...
-
ASP.NET 画面遷移前の状態を保...
-
JAVAのセッション変数の上書き...
-
ウィンドウの制御について、質...
-
【swing】ボタンクリックにより...
-
Java-jspの画面入力値保持について
-
ポップアップでウィンドウを表...
-
PDFファイルを表示するサブ...
-
location.hrefでページ切替時の...
-
ServletからServletへの値渡し
-
遷移元を判定したい!
-
system("cls")について
-
HTMLのINPUTから画面表示
-
java初心者です。 画面Aで情報...
-
画面を隠す・消す方法を教えて...
-
変数名とDBカラム名の関係性に...
-
フロントエンジニアで一人前と...
-
SessionとViewStateについて
-
ボタンを押したあとに画像を表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
C# ログイン画面からメイン画面...
-
C言語で今まで表示していた画面...
-
画面遷移を行わずに同一ページ...
-
Java-jspの画面入力値保持について
-
プログラミングで例えばゲーム...
-
フロントエンドフレームワーク...
-
ASP.NET 画面遷移前の状態を保...
-
遷移元を判定したい!
-
画像の縦横比固定の計算方法。
-
FormのsubmitでFormの内容がnull
-
画面を隠す・消す方法を教えて...
-
HTMLのINPUTから画面表示
-
登録後、呼び出し元ページに戻...
-
ボタンを押したあとに画像を表...
-
Javascriptのhistory.back()が...
-
ServletからServletへの値渡し
-
セッション切れでのリクエスト...
-
アドレスバーに引数を表示させ...
-
system("cls")について
おすすめ情報