Re: Android版:ナビゲーションバーを常に表示 ( No.1 ) |
- 名前:管理人 日時:2018/04/13 01:27
> Android版でアプリ起動時やスリープ復帰時に、
> ナビゲーションバーが自動で非表示になるのですが、
> 常に表示させたままには出来ないのでしょうか?
現状ではナビゲーションバーを表示させ続ける方法はありません
> 実機では画面をタッチすると、ナビゲーションバーが表示されるようになるので、
> どうせ表示されるなら表示しっぱなしにしたいのですが…。
画面の端から内側に向かってスライドさせるように触れた場合のみナビゲーションバーが表示されるように
なっているはずなのですが、画面のどこに触れてもナビゲーションバーが表示されてしまうのでしょうか?
> DXライブラリ側ではなく、AndroidManifest.xml側で設定するものなのでしょうか?
DXライブラリ内部で行っていますので、常に表示するようにするためには関数の追加が必要です
本日は作業時間が確保できないので、明日( 金曜日 )か、次の週末に関数を追加したいと思います m(_ _)m
|
Re: Android版:ナビゲーションバーを常に表示 ( No.2 ) |
- 名前:B.E 日時:2018/04/13 05:52
迅速な返信ありがとうございます。
> 画面の端から内側に向かってスライドさせるように触れた場合のみナビゲーションバーが表示されるように
> なっているはずなのですが、画面のどこに触れてもナビゲーションバーが表示されてしまうのでしょうか?
はい、手元にある2種類の機種で試しましたが、2台とも画面のどこをタッチしても表示されます。
機種は「ARROWS ef FJL21」と「AQUOS PHONE SL IS15SH」です。
あと一回目のタッチは「GetTouchInputNum」ではタッチとして認識されていないようです。
言葉では説明しにくいので、簡単なテストプログラムの実行画面の動画をアップしました。
ttp://fast-uploader.com/file/7079121337820/
タッチした所に青色の丸が描画されるプログラムですが、一回目のタッチはナビゲーションバーが表示されるだけです。
二回目以降はちゃんと丸が描画されます。スリープから復帰した後も同じ症状になります。
※動画は「ARROWS ef FJL21」ですが、もう一台の方も同じような感じになります。
> DXライブラリ内部で行っていますので、常に表示するようにするためには関数の追加が必要です
> 本日は作業時間が確保できないので、明日( 金曜日 )か、次の週末に関数を追加したいと思います m(_ _)m
わかりました。ありがとうございます。
よろしくお願いします。
|
Re: Android版:ナビゲーションバーを常に表示 ( No.3 ) |
- 名前:管理人 日時:2018/04/15 03:23
お待たせしました、ナビゲーションバーを常に表示状態にするための機能を追加したバージョンを
アップしましたので、よろしければダウンロードしてください m(_ _)m
https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用
https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用
( 元のファイルに上書きした後『リビルド』をしてください )
当初は関数を追加しようと考えていたのですが、ナビゲーションバーを非表示にする処理が
DxLib_Init が呼び出されるより前に行われていたので、AndroidManifest.xml の内容を書き換える
方法で対応しました
上記のバージョンを使用した上で AndroidManifest.xml のこちらの部分
<application android:label="@string/app_name" android:hasCode="false" android:theme="@android:style/Theme.NoTitleBar">
のすぐ下に以下の記述を書き加えるとナビゲーションバーが常に表示された状態になります
<meta-data android:name="fullscreen" android:value="off" />
よろしければお試しください m(_ _)m
> はい、手元にある2種類の機種で試しましたが、2台とも画面のどこをタッチしても表示されます。
> 機種は「ARROWS ef FJL21」と「AQUOS PHONE SL IS15SH」です。
> あと一回目のタッチは「GetTouchInputNum」ではタッチとして認識されていないようです。
動画を拝見しました
確かに挙動がおかしいですね・・・
エミュレーターの Android 4.4.2 のバージョンでは正常に動作することを確認しているのですが、
お試しされた ARROWS ef FJL21 と AQUOS PHONE SL IS15SH の Android のバージョンは幾つでしょうか?
|
Re: Android版:ナビゲーションバーを常に表示 ( No.4 ) |
- 名前:B.E 日時:2018/04/15 09:05
迅速な対応ありがとうございます。
ただ、早速上書きしてAndroidManifest.xmlを追記しリビルドしてみたのですが、
残念ながら状況は改善されませんでした…。
> お試しされた ARROWS ef FJL21 と AQUOS PHONE SL IS15SH の Android のバージョンは幾つでしょうか?
端末のAndroidバージョンは、
ARROWS ef FJL21が「4.1.2」、AQUOS PHONE SL IS15SHが「4.0.4」です。
かなり前に発売された機種なので古いバージョンです。
自分なりにちょっと調べてみたのですが、ウィキペディアのAndroidのバージョン履歴のページに
Android 4.4 KitKatからの新機能と変更点に「フルスクリーン没入モード(全てのシステムUIを非表示にできる)」
と書かれているのですが、これが関係あるのでしょうか? 見当違いならすいません…。
あとちょっと気になったので一応確認なのですが、
アップしていただいたファイルの日付が一番新しいものでも
本日の日付より前(2018/04/08)なのですが、
ファイルのリンク先が間違っていたりする事ってありますでしょうか?
よろしくお願いします。
|
Re: Android版:ナビゲーションバーを常に表示 ( No.5 ) |
- 名前:管理人 日時:2018/04/15 14:01
> あとちょっと気になったので一応確認なのですが、
> アップしていただいたファイルの日付が一番新しいものでも
> 本日の日付より前(2018/04/08)なのですが、
> ファイルのリンク先が間違っていたりする事ってありますでしょうか?
すみません、アップするフォルダを間違えてしまっていました orz
正しいフォルダにアップしましたので、申し訳ありませんが再度同じ URL からダウンロードしてください m(_ _;m
https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用
https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用
( 元のファイルに上書きした後『リビルド』をしてください )
> 端末のAndroidバージョンは、
> ARROWS ef FJL21が「4.1.2」、AQUOS PHONE SL IS15SHが「4.0.4」です。
> かなり前に発売された機種なので古いバージョンです。
>
> 自分なりにちょっと調べてみたのですが、ウィキペディアのAndroidのバージョン履歴のページに
> Android 4.4 KitKatからの新機能と変更点に「フルスクリーン没入モード(全てのシステムUIを非表示にできる)」
> と書かれているのですが、これが関係あるのでしょうか? 見当違いならすいません…。
おぉ、関係があると思います
私も調べてみたところ、ステータスバーやナビゲーションバーの表示・非表示は 4.4 までいろいろ複雑な経緯があったようです
2.x
ホームキー・バックキーなどは物理ボタンだったため、ステータスバーだけ非表示にする機能があった
3.x
一部の端末( 主にタブレット端末 )で物理ボタンが廃止されナビゲーションバーが実装された
このバージョンではナビゲーションバーを非表示にする方法は無かった
4.0 〜 4.3
すべての端末で物理ボタン廃止
インタラクション( 画面にタッチするなど )が無い間だけナビゲーションバーを非表示にする機能が追加された
( 動画を見ている間は表示されない、といった用途? )
4.4 〜
インタラクションがあってもステータスバーやナビゲーションバーを非表示のままにする機能( フルスクリーン没入モード )が追加された
( 『フルスクリーン没入モード』では画面端から内側に向かってタッチをスライドさせるとナビゲーションバー・ステータスバーが表示される )
私の手元にある 4.0 端末は何れも元は 2.x 系の端末で物理ボタンがあるため、
物理ボタンが無い 4.0 〜 4.3 端末での確認はできていませんでした
( VisualStudio で作成できるエミュレータも 4.4.2 が最低バージョンなのですが、4.0 〜 4.3 と 4.4 以降で
大きな違いがあることを知りませんでした、すみません orz )
B.E さんがお持ちの ARROWS ef FJL21 と AQUOS PHONE SL IS15SH はそれぞれ上記の表の 4.0 〜 4.3 に該当しますので、
『画面にタッチ( インタラクション )するとナビゲーションバーが表示される』の動作は仕様通りということになるようです
ただ、4.4 以降のバージョンとは異なり
「ナビゲーションバーが表示されていない状態でのタッチは『ナビゲーションバーを表示するためのタッチ』として扱われ、
アプリにはタッチ情報が渡されない」
ようで、これが『一回目のタッチはナビゲーションバーが表示されるだけ』の挙動に繋がっているのだと思います
|
Re: Android版:ナビゲーションバーを常に表示 ( No.6 ) |
- 名前:B.E(解決) 日時:2018/04/15 15:37
毎回、迅速な対応ありがとうございます。
早速上書きしてリビルドしたら、無事ナビゲーションバーを表示したままに出来ました。
> 私も調べてみたところ、ステータスバーやナビゲーションバーの表示・非表示は 4.4 までいろいろ複雑な経緯があったようです
そのような経緯があったのですね。
基本的にAndroidアプリは画面タッチすることが前提ですので、4.0 〜 4.3を対応機種に入れたい場合は、
やはりナビゲーションバーを表示させたままにしておくのが良さそうですね。
よくわかりました。ありがとうございます。
|