全屏自定义主题
Posted
技术标签:
【中文标题】全屏自定义主题【英文标题】:Full Screen in customize theme 【发布时间】:2012-04-09 04:40:30 【问题描述】:我需要我的应用全屏显示。现在我知道如何使用
将此功能添加到 Mainfest 中的应用程序标签中android:theme=”@android:style/Theme.NoTitleBar.Fullscreen"
但是,我有自己的主题,称为“CodeFont”,我不能在同一个应用程序中使用两个主题。如何将此功能添加到资源文件中自己的样式标签中?没有像 android:style 标签这样的东西。
【问题讨论】:
【参考方案1】:使用默认主题创建您的自定义主题,像这样
Fullscreen
的窗口
<style name="generalnotitle" parent="general">
<item name="android:windowFullscreen">true</item>
</style>
NoTitle
的窗口
<style name="generalnotitle" parent="general">
<item name="android:windowNoTitle">true</item>
</style>
【讨论】:
这不会全屏显示。你需要res/values/styles.xml
。
当我在 windowFullscreen 设置为 false 的情况下执行此操作时,它的作用与我的预期相反。它使我的对话框完全全屏。而没有自定义主题,我的对话框就很大,几乎占据了整个屏幕(包括宽度和高度)。这是为什么呢?【参考方案2】:
使用父属性创建您的自定义主题,以从一般 android 主题继承 NoTitleBar.Fullscreen 属性。
值/样式.xml
<resources>
<style name="CodeFont" parent="android:Theme.NoTitleBar.Fullscreen">
<item name="android:windowNoTitle">true</item>
...
</style>
</resources>
AndroidManifest.xml
<activity
android:name=".MainActivity"
android:theme="@style/CodeFont">
...
</activity>
【讨论】:
【参考方案3】:在style.xml中添加
<item name="android:windowFullscreen">true</item>
到你的主题。示例:
<style name="CodeFont" parent="android:Theme.Light">
<item name="android:windowFullscreen">true</item>
</style>
【讨论】:
【参考方案4】:您可以使用(例如)请求代码中的一些特性和标志:
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.some_layout);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
【讨论】:
【参考方案5】:在应用样式中设置主题适用于我的 React Native 应用。只需输入android/app/src/main/res/values/styles.xml
:
<resources>
<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar.Fullscreen"></style>
</resources>
在android/app/src/main/AndroidManifest.xml
链接到这个主题:
<application
...
android:theme="@style/AppTheme">
Reference
【讨论】:
以上是关于全屏自定义主题的主要内容,如果未能解决你的问题,请参考以下文章