【问题标题】:how to write requestWindowFeature(Window.FEATURE_NO_TITLE) with ComponentActivity Class , API 31+ in Android-Compose如何在 Android-Compose 中使用 ComponentActivity Class、API 31+ 编写 requestWindowFeature(Window.FEATURE_NO_TITLE)
【发布时间】:2022-07-19 09:47:46
【问题描述】:

如何编写这段代码

requestWindowFeature(Window.FEATURE_NO_TITLE)

在 API 31+ 中

在jetpackcompose中使用SuperClass ComponentActivity,因为这段代码没有隐藏标题栏,使用了Kotlin

class MainActivity:ComponentActivity() {

  override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)
        requestWindowFeature(Window.FEATURE_NO_TITLE)

        setContent {

            SMarketTheme {
                        .........

}

【问题讨论】:

  • 您在AndroidManifest.xml 中为application 标签或activity 标签使用什么主题。您能否将这些标签中的android:theme="..." 属性添加到问题中。
  • 我使用默认主题,但它是用于喷气背包组合项目的新型主题 API 31+。----------->@Composable fun SMarketTheme(darkTheme: Boolean = isSystemInDarkTheme( ),内容:@Composable() () -> Unit) { val colors = if (darkTheme) {DarkColorPalette } else LightColorPalette}MaterialTheme(....... ) } 。只有 ComponentActivity SuperClas 有问题,AppCompactActivity SuperClass 没有问题,但在 Api 31+ 中需要使用 ComponenActivity ,因为 AppCompactActivity 与 api 31+ 不兼容
  • 我也在使用 API 31+(我使用 32)和我的 Activity 扩展 ComponentActivity 并且我在隐藏标题栏或系统栏方面没有问题。实现此目的的一种简单方法是在AndroidManifest 中为您的应用程序/活动设置正确的父主题。例如android:Theme.Material.Light.NoActionBar。使用您的AndroidManifest.xml 更新您的问题。

标签: android android-jetpack-compose


【解决方案1】:

已解决。我认为这是一个错误,我认为管理“主题”的文件重复且冲突,例如“Theme.k”文件中声明的主题与 values/themes.xml 文件冲突

解决办法,修改values/themes.xml文件

 <style name="Theme.SMarket" parent="android:Theme.Material.Light.NoActionBar.Fullscreen">
    <!--<item name="android:statusBarColor">@color/purple_700</item>-->
</style>

并忽略 Themes.kt

  • 对不起我的英语:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多