web-dev-qa-db-ja.com

非表示ICS戻るホームタスクスイッチャーボタン

ICS back/home/etcソフトウェアボタンをプログラムで非表示にする方法を考えています。動画の再生時にYouTubeアプリが行うのと同じです。動画の再生中に非表示にしたいのですが、ユーザーが画面をタップするとアップします。

ウェブやGoogleのドキュメントのどこにも見当たらないようです。

29
rustyshelf

フラグSYSTEM_UI_FLAG_HIDE_NAVIGATIONで全画面ウィンドウを設定してみてください

23
pinxue

pinxue is Spot-on ...あなたが欲しい SYSTEM_UI_FLAG_HIDE_NAVIGATION 。例:

myView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

ただし、注意すべき点の1つは、ユーザーとのやり取り(つまり、すべての操作)時にナビゲーションバーが再表示されることです。

Honeycombで取得できる最も近いのは、「消灯」モード(現在は「ロープロファイル」と呼ばれています... SYSTEM_UI_FLAG_LOW_PROFILE )に入ることです。これにより、ナビゲーションバーのアイテムが見にくくなります(おそらく、見たことのある小さな「ドット」)。 Honeycombとの下位互換性を維持するために最善を尽くしたい場合は、リフレクションを使用して「最良の」方法を使用できます。

// Ask the System Bar to hide
int whichHiddenStatusToUse = Android.view.View.STATUS_BAR_HIDDEN;
try {
    // if this next line doesn't thrown an exception then we are on ICS or  
    // above, so we can use the new field.
    whichHiddenStatusToUse = View.class.getDeclaredField("SYSTEM_UI_FLAG_HIDE_NAVIGATION").getInt(mDrawingSurface);
} catch (Exception ex) {
}
// now lets actually ask one of our views to request the decreased visibility
myView.setSystemUiVisibility(whichHiddenStatusToUse);
31
Jeremy Logan

SYSTEM_UI_FLAG_HIDE_NAVIGATION が必要です。

このフラグは、API 14のアイスクリームサンドイッチとして追加されました。14の前に、フラグ STATUS_BAR_HIDDEN がHoneycomb、API 11に追加されました。以前は、ソフトナビゲーションボタンが存在しないため、フルスクリーンモードがありました。 Themes (具体的には Theme.NoTitleBar.Fullscreen )によって完全に処理されます。

使用する:

if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH )
    mBaseLayout.setSystemUiVisibility( View.SYSTEM_UI_FLAG_HIDE_NAVIGATION );
else if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB )
    mBaseLayout.setSystemUiVisibility( View.STATUS_BAR_HIDDEN );
6
reor

androidManifest.xmlに次を追加:

<uses-permission Android:name="Android.permission.BROADCAST_STICKY"/>

次に、この関数を使用して、ホーム/リターンナビゲーションバーを表示または非表示にできます。

private void changeSystemBarVisibilty(boolean show)
{
    Context context = getApplicationContext();
    final Intent intent = new Intent("Android.intent.action.SYSTEM_BAR_VISIBILITY");
    intent.putExtra("show", show);
    context.sendStickyBroadcast(intent);
}
0
Elad

この答えは、質問に直接答えているとは限りません。他の人が時間を節約するのに役立つかもしれないと私はそれを投稿しています。

ナビゲーションバーを完全に非表示にする必要がありました。ユーザーが画面をクリックしても、非表示のままにしておく必要があります。

上記のどれも私にとってはうまくいきませんでした。

数日前にこのトピックをグーグルで検索した後、クラスを書きました。私はこのクラスに行きます。

tilsTaskBar.Java

どこでもテストすることはできませんでしたが、4で動作します。**

注:このクラスは、一般的なユーザー向けではない特殊用途のアプリケーションに使用しました。

このクラスでナビゲーションバーを非表示にすると、デバイスを再起動するか、同じクラスで再度表示するまで、ナビゲーションバーは表示されません。

したがって、本当に必要な場合にのみ使用してください。

0
MBH