これを参照しました link 。そのため、ユーザーがその時点でEditText(ex To:)をクリックすると、キーボードがポップアウトされ、同時にユーザーはスクロールして残りのすべてのビュー(例:構成、件名、送信ボタン)を表示できますその画面。同様に、私のアプリには、いくつかのウィジェットまたはビューがあるという点で1つのアクティビティがあります。ユーザーが私のアクティビティにある編集テキストをクリックすると、キーボードが飛び出し、スクロールして残りのビューを表示できるとします。ただし、マニフェストでこの属性Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen"
を指定すると、スクロールして残りのビューを表示できませんでしたが、マニフェストでこのような属性Android:theme="@Android:style/Theme.NoTitleBar"
を指定すると、スクロールして残りのビューを表示できますが、ステータスバーがありますその画面では、ここで全画面表示が必要です。キーボードがポップアウトされていても、スクロールして残りのビューを表示できます。このためにどのような変更を加える必要がありますか?
あなたのアクティビティにこれを書いてください
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
ここでドキュメントを確認してください: https://developer.Android.com/training/system-ui/status.html
アプリはフルスクリーンになります。ステータスバーもタイトルバーもありません。 :)
if (Build.VERSION.SDK_INT < 16) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
ActionBar actionBar = getActionBar();
actionBar.hide();
}
テーマ"Theme.NoTitleBar.Fullscreen"
を使用し、"Android:windowSoftInputMode=adjustResize"
のアクティビティにAndroidManifest.xml.
を設定してみてください。詳細は こちら で確認できます。
1つのアクティビティでこれが必要な場合は、setContentViewの前にonCreateを配置する必要があります。
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.your_screen);
これをアクティビティクラスに追加します
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
// some your code
}
これをActivity
に使用します。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
void hideStatusBar() {
if (Build.VERSION.SDK_INT < 16) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
}
このメソッドを使用して、ステータスバーを非表示にできます。これは、アクションバーを非表示にするためにも重要です。この場合、getSupportActionBar()。hide() Appcompatなどのサポートライブラリからアクティビティを拡張した場合、または単にgetActionBar()。hide()を呼び出すことができます。上記の方法の後。ありがとう
manifest.xml
ファイルでアプリケーションのテーマを変更します。
Android:theme="@Android:style/Theme.Translucent.NoTitleBar"
このコードを使用:
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.youractivityxmlname);
このコードはステータスバーを非表示にします。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
アクションバーを非表示にするには、次の行を記述します。
requestWindowFeature(Window.FEATURE_NO_TITLE);
アクションバーとステータスバーを隠すために両方の行をまとめて書くことができます。これらのすべての行は、setContentView
メソッドでonCreate
メソッドを呼び出す前に記述する必要があります。
Styles.xmlを使用して非表示にできます
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="HiddenTitleTheme" parent="AppTheme">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
マニフェストでこのAndroid:theme="@style/HiddenTitleTheme"
のように呼び出すだけです
AndroidManifest.xml->使用するアクティビティ内で、次を追加します。
Android:theme="@style/Theme.AppCompat.Light.NoActionBar"
//this is for hiding action bar
mainActivity.Java-> onCreate()メソッド内で、次を追加します。
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//this is for hiding status bar
このコードを使用して、アプリのステータスバーを非表示にし、使いやすくします
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
これは、Android 4.0以前およびAndroid 4.1以降でのステータスバーの非表示に関する公式ドキュメントです。
ご覧ください:
https://developer.Android.com/training/system-ui/status.html
Res->値-> styles.xmlの下
style bodyタグペースト内
<item name="Android:windowTranslucentStatus" tools:targetApi="KitKat">true</item>
このソリューションは私のために働く:)
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= 19) {
getWindow().setFlags(AccessibilityNodeInfoCompat.ACTION_NEXT_HTML_ELEMENT, AccessibilityNodeInfoCompat.ACTION_NEXT_HTML_ELEMENT);
getWindow().getDecorView().setSystemUiVisibility(3328);
}else{
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
DataBindingUtil.setContentView(this, R.layout.activity_hse_video_details);
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// If the Android version is lower than Jellybean, use this call to hide
// the status bar.
if (Build.VERSION.SDK_INT < 16) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
// Remember that you should never show the action bar if the
// status bar is hidden, so hide that too if necessary.
ActionBar actionBar = getActionBar();
actionBar.hide();
}
setContentView(R.layout.activity_main);
}
...
}
xmlを使用して色を透明に設定すると、ステータスバーを非表示にできます。 statusBarColorアイテムをアクティビティテーマに追加します。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="Android:statusBarColor">@Android:color/transparent</item>
</style>
(4.4+)KitKat以上のデバイスでは、ステータスがフルスクリーンモードで表示されるのを防ぐことはできないため、ステータスバーの拡張をブロックするためにハックを試みてください。
ソリューションはかなり大きいので、SOのリンクは次のとおりです。
StackOverflow:Android 4.4+またはKitKat with Fullscreenでステータスバーを非表示
Manifest
で使用
Android:theme="@Android:style/Theme.Holo.NoActionBar.Fullscreen"
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);