問題タブ [android-navigation-bar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1156 参照

android - Android AccessibilityService でステータス バー、ナビゲーション バー、画面の寸法を見つける方法

Java アプリ (API 23) があります。その中に と がMainActivityありAccessibilityServiceます。AccessibilityService では:

を調整する必要があるのでwidth、ステータス バーとナビゲーション バーを含む画面全体をカバーします。つまり、ステータス バー、画面、およびナビゲーション バーのサイズを見つける必要があります (必要な値を取得したら、必要な値を計算できます)。heightxPosyPos

ステータスバーの高さを見つけましたか? - 最良の答えは

しかしrootView、アクティビティが表示される保証はないので、何を使用できますか? そして、ビューの作成onServiceConnected()を内部から移動する必要がありonApplyWindowInsets()ますか?

これは本当にこれを行うための最良の方法ですか?

上記について心に留めておくべきフォローアップの質問 - 上記とそれがそれらにも答えているかどうかに応じて、ここまたは別の質問で尋ねます。

画面が回転するとどうなりますか?ステータス バーやナビゲーション バーが表示されなくなった場合 (たとえば、全画面表示になった場合) はどうなりますか? それを処理し、高さを読み直して、ビューを再作成する必要があるようです。それを行う方法についての考えやガイダンスは大歓迎です。

=== 更新 - これまでの進捗状況 ===

画面サイズとステータス バーに関する情報 (サイズ、場所) だけが必要だと思っていましたが、ナビゲーション バーが画面の左側にある場合があるため、それが必要であり、キーボードも影響を与える可能性があります。

で画面サイズを取得できます

私はまださまざまな場所とサイズに取り組んでいます。ビューを作成してからインセットを読み取ろうとしましたが、間違った答えが得られました。したがって、より良い答えが得られない限り、おそらく使用する必要があります

しかし、ステータス バーが非表示になっていると、場合によっては間違った回答が返される可能性があり、画面上のどこにあるのかわかりません。私はまだそれに取り組んでいます。試してみることがいくつかあるので、見てみましょう。

サービスで回転を処理するには、onConfigurationChanged()を使用します。サービスを使用して Android で方向の変化を監視する方法を参照してください。

それが誰かの助けになることを願っています-どうか、それらの最後の部分を必死に探してください.

0 投票する
2 に答える
1711 参照

android - スプラッシュスクリーンを表示するためのシステムバーなしでフルスクリーンにする方法は?

スプラッシュ スクリーンとしてシステム バーのないフル スクリーンを作成しようとしていますが、アプリケーションの起動時にルート レイアウトのサイズを変更する際に問題が発生します。

ルート レイアウトがナビゲーション バーの後ろでサイズ変更され、実際にやりたかったことを画面の最後に移動するため、下部に問題はありません。問題は、ルート レイアウトの上部にあることです。これは、画面の上部に移動しないためです。画面の上部に、ステータス バーを非表示にした後に残る黒い空白があります。

注: minSdkVersion 22 と targetSdkVersion 29 を使用しています。

デモンストレーションの目的で、ルート レイアウトとして Constraint Layout 内の 1 つのアクティビティと、緑色の背景と 2 つのボタンを持つ 1 つの対応する XML レイアウト ファイルを含む単純なコードを使用します。

主な活動:

アクティビティ_メイン:

テーマ:

左側は、システム バーのない黒いスペースで画面に触れる前のアプリですが、サイズ変更されたルート レイアウト (緑色) が正しくありません。右側は、システム バーで画面に触れ、サイズ変更されたルート レイアウトを修正した後のアプリです。

ここに画像の説明を入力

画面を操作する前に、黒いスペースのない全画面表示と、完全にサイズ変更されたルート レイアウトと、スプラッシュ スクリーン用の非表示のシステム バーを備えたアプリが必要です。どうやってやるの?

更新: minSdkVersion 22 と targetSdkVersion 29 を使用しており、Samsung Galaxy A40 (Android 10、API 29) でテストしました。Samsung では常に上部に黒いスペースが表示されますが、ZTE Nubia (API 22) ではすべて正常に動作します。これまでの唯一の解決策は、次のようにデバイス設定を変更することです: Galaxy でフルスクリーン アプリを有効にする方法@SlothCoding がコメントで教えてくれました。

UPDATE2:デバイス設定を変更したくない場合は、画面領域にカメラが組み込まれている電話用のこのコードが必要です。公式には、カットアウト領域にコンテンツを表示するために必要です。