我提到了link。这样,如果用户点击EditText(对于ex To :),那么键盘将会弹出,同时用户可以滚动查看所有剩余的视图(例如:撰写,主题,发送按钮)那个屏幕。同样在我的应用程序中,我有一个活动,我有一些小部件或视图。
假设用户点击我的Activity中的Edittext然后键盘弹出,我可以滚动查看剩余的视图。但是如果我在清单中给出这个属性android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
我无法滚动查看剩余的视图但是如果在清单中给出这样的属性android:theme="@android:style/Theme.NoTitleBar"
我可以滚动查看剩余视图但是有状态栏在那个屏幕上,这里我想要全屏,即使弹出键盘,我也可以滚动查看其余视图..?我必须为此做些什么改变..?
答案 0 :(得分:146)
在您的活动
中写下此内容@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);
}
点击此处查看文档:{{3}}
,您的应用将全屏显示。没有状态栏,没有标题栏。 :)
答案 1 :(得分:18)
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();
}
答案 2 :(得分:18)
使用主题"Theme.NoTitleBar.Fullscreen"
并尝试为"android:windowSoftInputMode=adjustResize"
中的活动设置AndroidManifest.xml.
您可以找到详细信息here。
答案 3 :(得分:11)
如果你需要在一个活动中使用它,你必须在setContentView之前输入onCreate:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.your_screen);
答案 4 :(得分:8)
将此添加到您的Activity类
@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
}
答案 5 :(得分:8)
将此用于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);
}
答案 6 :(得分:7)
如果要隐藏状态栏,请在onCreate(对于Activity)和onCreateView / onViewCreated(对于Fragment)中进行操作
align
并且不要忘记在退出活动时清除该标志,否则访问此活动后您将在整个应用程序中拥有全屏显示。 要清除此内容,请在onDestroy(用于Activity)或onDestroyView(用于片段)中
64-bit unsigned relocation zero-extended from 32 bits [-w+zext-reloc]
答案 7 :(得分:7)
在manifest.xml
文件中更改应用程序的主题。
android:theme="@android:style/Theme.Translucent.NoTitleBar"
答案 8 :(得分:6)
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等支持lib扩展了活动,或者你可以简单地调用 getActionBar()。hide()经过上述方法。感谢
答案 9 :(得分:5)
使用此代码:
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.youractivityxmlname);
答案 10 :(得分:3)
此代码隐藏状态栏。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
隐藏操作栏写下这一行: -
requestWindowFeature(Window.FEATURE_NO_TITLE);
这两行可以统一写入以隐藏操作栏和状态栏。所有这些行必须在setContentView
方法中onCreate
方法调用之前编写。
答案 11 :(得分:3)
您可以使用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"
答案 12 :(得分:2)
在AndroidManifest.xml中 - &gt;在您要使用的活动内,添加以下内容:
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
//this is for hiding action bar
并在MainActivity.java中 - &gt;在onCreate()方法中,添加以下内容:
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//this is for hiding status bar
答案 13 :(得分:1)
这是关于在Android 4.0及更低版本以及Android 4.1及更高版本上隐藏状态栏的官方文档
请看一下:
https://developer.android.com/training/system-ui/status.html
答案 14 :(得分:1)
这对我来说是最好的解决方案,只需在你的 theme.xml 中写下这一行
<style name="MyApp" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
...
</style>
答案 15 :(得分:1)
由于Android R不推荐使用FLAG_FULLSCREEN,因此您可以使用以下代码隐藏状态栏。
@Suppress("DEPRECATION")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.insetsController?.hide(WindowInsets.Type.statusBars())
} else {
window.setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN
)
}
答案 16 :(得分:1)
使用此代码可在您的应用中隐藏状态栏,并且易于使用
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
答案 17 :(得分:1)
我们无法阻止(4.4+)kitkat或更高版本设备以全屏模式显示状态,因此请尝试黑客阻止状态栏扩展。
解决方案非常大,所以这里是SO的链接:
StackOverflow : Hide status bar in android 4.4+ or kitkat with Fullscreen
答案 18 :(得分:0)
//我们可以在 Android 4.1(API 级别 16)及更高版本中使用 setSystemUiVisibility() 隐藏状态栏
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
//根据谷歌文档,我们不应该显示操作栏,如果 状态栏是隐藏的,所以如果需要也隐藏它。
actionBar?.hide()
答案 19 :(得分:0)
在 Style.xml 文件中添加或替换
<item name="android:statusBarColor">@android:color/transparent</item>
答案 20 :(得分:0)
包括android api 30,这对我有用
if (Build.VERSION.SDK_INT < 16) {
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
} else if (Build.VERSION.SDK_INT < 30) {
window.decorView?.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
actionBar?.hide()
} else {
window.decorView.windowInsetsController?.hide(WindowInsets.Type.statusBars())
}
答案 21 :(得分:0)
如果您引用Google Documents,则可以在android 4.1及更高版本中使用此方法,请在setContentView()之前调用此方法
public void hideStatusBar() {
View view = getWindow().getDecorView();
int uiOption = View.SYSTEM_UI_FLAG_FULLSCREEN;
view.setSystemUiVisibility(uiOption);
ActionBar actionBar = getActionBar();
if (actionBar != null) {
actionBar.hide();
}
}
答案 22 :(得分:0)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.Theme_AppCompat_Light_NoActionBar);
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN
, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity__splash_screen);
}
答案 23 :(得分:0)
您可以通过使用 xml 将状态栏的颜色设置为透明来隐藏状态栏。将 statusBarColor 项目添加到您的活动主题:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
答案 24 :(得分:0)
在res下 - &gt;值 - &gt; styles.xml
在样式正文标记粘贴
内<item name="android:windowTranslucentStatus" tools:targetApi="kitkat">true</item>
答案 25 :(得分:0)
在Manifest
android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"
答案 26 :(得分:0)
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);
}
...
}
答案 27 :(得分:0)
此解决方案适用于我:)
@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);
答案 28 :(得分:-1)
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);