我想知道如何将全屏主题(没有标题栏+没有操作栏)应用于某个活动.我正在使用支持包v7中的AppCompat库.
我试图申请android:theme="@android:style/Theme.NoTitleBar.Fullscreen"我的具体活动,但它崩溃了.我认为这是因为我的应用程序主题是这样的.
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)
它只隐藏标题栏但不隐藏操作栏.我目前的解决方法是隐藏动作栏
getSupportActionBar().hide();
Run Code Online (Sandbox Code Playgroud) 我已经对这个主题做了一些研究,我找不到一个完整的解决方案,所以,一步一步,经过一些反复试验,我终于找到了如何实现这些结果:透明或有色Actionbar和Statusbar.请看下面的答案.
android android-appcompat android-actionbar android-toolbar android-statusbar
Android R + Pixel 4 Emulator:当我隐藏状态栏时,主视图向下移动,顶部出现一个黑色方块(与状态栏大小相同)。它在 Android 11 之前运行。它看起来很简单,但我找不到解决方案......而且我需要全屏模式。
我尝试使用 SYSTEM_UI_FLAG_FULLSCREEN(现已弃用)和 controller.hide(WindowInsets.Type.statusBars()); 这两种方式有同样的问题。
这是主要代码: MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button buttonShow = findViewById(R.id.b1);
buttonShow.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showBars();
}
});
Button buttonHide = findViewById(R.id.b2);
buttonHide.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
hideBars();
}
});
showBars();
}
public void showBars(){
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// New code …Run Code Online (Sandbox Code Playgroud)