ノート PC に、Visual Studio Community 2022 の C++ によるモバイル開発機能と、 その時点で最新だった Android Studio をインストールしました。
インストール直後、まず最初に「Android Studio で新規プロジェクトを作成する」のように、 基本となる Empty Activity を作成し、実機で動作させるまでテストしました。
特に問題もなく動作しましたのでそれでいいのですが、 気になる点が 1 つありました。
画面最上部にタイトル欄が見えますが、 画面デザインの定義ファイル activity_main.xml にはこの領域は定義されていませんので、簡単に取り外すことはできない様子です。
Empty Activity の構成は、 AdMob Activity や Native C++ の基本となっているようですから、どのように表示されているかを調べ、不要なら消す方法を確認しました。
ちなみにこの領域は「タイトルバー」や「キャプション」ということではなく、 本来は次の AdMob プロジェクトの画面イメージのように、メニューを配置したりして使う 「アクションバー」という名称らしいです。
Windows では、システムメニューや閉じるボタンなどがあっても、アプリ名が表示されている領域はタイトルバーとかキャプションとか呼びますが、 Android でなぜこの領域をそう呼ばないかは、 ここにアイコンやメニューを配置して操作しやすくする、という目的があるからだそうです。 どう使うのかは 「Android actionbar(アクションバー)の便利な使い方 7 選」に詳しく書かれています。 ですので「アクションバー」という呼び方で統一します。
なお、使用している Android Studio は、2022 年 5 月上旬にインストールした 2021.1.1 Patch 3 の Bumblebee から、 「Android Studio をアップデートする」 のように更新を行った、2021.2.1 の Chipmunk です。
もしまだ基本となる「エンプティ・アクティビティ」をテストしていない場合は、 「Android Studio で新規プロジェクトを作成する」 からご覧になることをおすすめします。
なお、本サイトの
ご利用に際しては、必ずプライバシーポリシー(免責事項等)をご参照ください。
投稿 June 3, 2022
いつもなら、うまくいかなかった方法も含め、試した手順通りにページを構成しているのですが、 ここではまず解決策 2 種類を先に記録します。
まずその 1、正統派と思われる、テーマの書き換えです。
これが適したケースは、どうやらアプリを通してアクションバーが不要なケースです。
理由はこのあと「themes.xml を書き換える」に書きますが、 プロジェクトに 2 つある、themes.xml に定義されている「親テーマ」を書き換えます。
Android Studio の画面左側、Project の構成リストから、 res、 values、 themes と、順番に開いていきます。
みつかった themes.xml をダブルクリックして、エディタで開きます。
するとすぐに、Theme.MyEmptyTest のように、
この DarkActionBar を NoActionBar に書き換えると、 アクションバーは表示されなくなります。
実機を接続して確認すると、アクションバーは、画面が縦でも横でも表示されませんでした。
もう 1 つある themes.xml (night) も同じように書き換えます。 これを忘れると、ダークモードではアクションバーが表示されることになります。 ダークモードについては、 「ダークモードと色反転」 に書かれています。
続いてその 2、getSupportActionBar をコードに追加、です。
これが適したケースは、どうやらアプリの画面個別でアクションバーが不要なケースです。
理由はこのあと「getSupportActionBar を使う」に書きますが、 MainActivity.java などで、setContentView 関数でビューを設定したあとに、以下のコードを追加します。
ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.hide(); }
意味としては、getSupportActionBar 関数でアクションバー情報を取得し、 変数 actionBar に取得できた場合は hide 関数を呼び出して非表示にする、です。
その 1 と連続して試す場合は、DarkActionBar に戻すことを忘れないでください。
こちらも実機を接続して確認すると、アクションバーは、画面が縦でも横でも表示されませんでした。
投稿 June 3, 2022
上記手順その 1、themes.xml を書き換える理由について、調べた部分を記述します。
画面のデザイン activity_main.xml にはアクションバーに関する定義はありませんので、 アプリの設定を行っている AndroidManifest.xml を開いて確認します。 Project の manifests に入っています。
manifests の中にある AndroidManifest.xml をエディタで開くと、 application タグの中に、テーマの設定 android:theme がみつかります。
android:theme="@style/Theme.MyEmptyTest"
これを見ると、Theme.MyEmptyTest が指定されていることがわかります。 ここで、MyEmptyTest はアプリ名(プロジェクト名)ですので、 作成したプロジェクトの名前になります。
この Theme.MyEmptyTest がどこで定義されているかを調べると、project で res、 values、 themes と開いていったとろこにある、 themes.xml にみつかります。
みつかった themes.xml をダブルクリックして、エディタで開きます。
Theme.MyEmptyTest は style タグで、 Theme.MaterialComponents.DayNight.DarkActionBar を親テーマとして生成されていることがわかります。 DarkActionBar が、アクションバーを含んだテーマのようです。 ちょっと古そうですが、 「スタイルとテーマ」 が参考になるかもしれません。
これを、 Theme.MaterialComponents.DayNight.NoActionBar のように、最後の部分を NoActionBar に書き換えと、親テーマがアクションバーを持たなくなるようです。
themes には、themes.xml が 2 つあります。
ダークモード用の themes.xml (night) も同様に書き換える必要があります。 これを忘れると、ダークモードになったとき、おかしな表示になるでしょう。
改めて、ダークモードについては、 「ダークモードと色反転」 に書かれています。
投稿 June 3, 2022
上記手順その 2、 getSupportActionBar 関数を追加する理由について、調べた部分を記述します。
まず、Project の java の、 com.straightapps.myemptytest のようなパッケージ名の中にある、 MainActivity.java を開きます。
onCreate 関数で、 この時点で唯一のビュー R.layout.activity_main を setContentView 関数で設定しています。
setContentView 関数の呼び出しのあとに、次のコードを追加しました。
ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.hide(); }
追加した直後は、上のイメージのように ActionBar クラスが未定義のため赤く表示されます。 この定義をインポートしなくてはいけません。
赤くなっている ActionBar をマウスでポイントすると、理由が表示されます。
適切な import がないため、ActionBar が未定義となっている、ということです。
ヒントの左下にある Import class をクリックすると、 自動的に ActionBar が定義されているパッケージを import に加えてくれます。
これで、自動的に適切な import 文が追加され、ActionBar が解決されました。
念のため、省略表示されている import を展開して確認します。
パッケージ名の次の行に、import androidx.appcompat.app.ActionBar; 行が追加されたことがわかります。
これで、ビューからアクションバーを取得し、 アクションバーが取得できたなら、hide 関数で非表示にする、 という流れができました。
2022 年 5 月に、ノート PC に Android Studio を新規にインストールした様子について書いています。
インストールしたばかりの Android Studio を試すため、Empty Activity を作成し、実機で動作させてみます。
Android Studio で全画面プロジェクトを作成する
インストールしたばかりの Android Studio を試すため、Fullscreen Activity を作成し、実機で動作させてみます。
以降の数学の基本となる素因数分解の基本部分を、ひたすらトレーニングするための JavaScript コードについて書いています。
因数分解の公式の一部について、ひたすらトレーニングするための JavaScript コードについて書いています。
Android 開発に関する記事をまとめた Android 開発トップ もご覧ください。