片段不显示视图元素

如何解决片段不显示视图元素

我使用的是 Android Studio 4.1.2 版。我正在尝试使用导航组件创建底部导航,但面临一个问题,我的片段不显示视图元素。我认为这是因为我的样式出了点问题(在 4.1.2 版中,我们有 themes.xml 和 themes(night).xml 而不是 style.xml)。我为两个文件设置了相同的样式。但是当我在我的设备上运行我的应用程序(使用暗模式)时,我的片段没有显示我的视图元素,之后我尝试更改模式(从暗到亮),然后我看到了我的视图元素。但在那之后,我再次尝试改变模式(回到黑暗模式),我看到我的一些元素变暗了。这很奇怪,因为我对两个 themes.xml 使用了相同的主题和相同的颜色。还有一件事,更改模式后一切正常,但关闭并重新启动应用程序后不再显示视图元素。如何解决这个问题?

themes.xml

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.TripApp" parent="Theme.MaterialComponents">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textViewStyle">@style/TextViewStyle</item>
    <item name="materialButtonStyle">@style/GreenButtonStyle</item>
    <item name="bottomAppBarStyle">@style/BottomAppBarStyle</item>
    <item name="floatingActionButtonStyle">@style/FloatingActionButtonStyle</item>
    <item name="android:windowBackground">@color/darkBackground</item>
    <item name="actionBarStyle">@style/ToolbarStyle</item>
    <item name="cardViewStyle">@style/CardViewStyle</item>
    <item name="textInputStyle">@style/TextInputLayoutStyle</item>
</style>

<style name="TextInputLayoutStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
    <item name="android:textColorHint">@color/colorPrimary</item>
    <item name="startIconTint">@color/colorPrimary</item>
    <item name="BoxstrokeColor">@drawable/edit_text_Box_border</item>
    <item name="BoxCornerRadiusTopEnd">0dp</item>
    <item name="BoxCornerRadiusBottomEnd">0dp</item>
    <item name="BoxCornerRadiusBottomStart">0dp</item>
    <item name="BoxCornerRadiusTopStart">0dp</item>
</style>

<style name="CardViewStyle" parent="Widget.MaterialComponents.CardView">
    <item name="cardBackgroundColor">@color/mediumDarkBackground</item>
</style>

<style name="ToolbarStyle" parent="Widget.MaterialComponents.ActionBar.Primary">
    <item name="background">@color/mediumDarkBackground</item>
    <item name="android:textColor">@android:color/white</item>
</style>

<style name="BottomAppBarStyle" parent="Widget.MaterialComponents.BottomAppBar">
    <item name="backgroundTint">@color/mediumDarkBackground</item>
</style>

<style name="GreenButtonStyle" parent="Widget.MaterialComponents.Button">
    <item name="fontFamily">@font/montserrat_semibold</item>
    <item name="cornerRadius">0dp</item>
    <item name="android:textColor">@android:color/black</item>
</style>

<style name="RedButtonStyle" parent="Widget.MaterialComponents.Button">
    <item name="fontFamily">@font/montserrat_semibold</item>
    <item name="cornerRadius">0dp</item>
    <item name="backgroundTint">#FF0000</item>
    <item name="android:textColor">@android:color/white</item>
</style>

<style name="FloatingActionButtonStyle" parent="Widget.MaterialComponents.FloatingActionButton">
    <item name="backgroundTint">@color/colorPrimary</item>
    <!--<item name="shapeAppearanceOverlay">@style/FabDiamondOverlay</item>-->
</style>

<style name="FabDiamondOverlay" parent="ShapeAppearance.MaterialComponents.SmallComponent">
    <item name="cornerFamilyBottomright">cut</item>
    <item name="cornerFamilyBottomLeft">cut</item>
    <item name="cornerFamilyTopRight">rounded</item>
    <item name="cornerFamilyTopLeft">rounded</item>
    <item name="cornerSizeBottomLeft">50%</item>
    <item name="cornerSizeBottomright">50%</item>
    <item name="cornerSizetopLeft">0%</item>
    <item name="cornerSizetopRight">0%</item>
</style>

<style name="TextViewStyle" parent="android:Widget.TextView">
    <item name="fontFamily">@font/montserrat_regular</item>
    <item name="android:textColor">@android:color/white</item>
</style>

主题(夜间).xml

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.TripApp" parent="Theme.MaterialComponents">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textViewStyle">@style/TextViewStyle</item>
        <item name="materialButtonStyle">@style/GreenButtonStyle</item>
        <item name="bottomAppBarStyle">@style/BottomAppBarStyle</item>
        <item name="floatingActionButtonStyle">@style/FloatingActionButtonStyle</item>
        <item name="android:windowBackground">@color/darkBackground</item>
        <item name="actionBarStyle">@style/ToolbarStyle</item>
        <item name="cardViewStyle">@style/CardViewStyle</item>
        <item name="textInputStyle">@style/TextInputLayoutStyle</item>
    </style>

    <style name="TextInputLayoutStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
        <item name="android:textColorHint">@color/colorPrimary</item>
        <item name="startIconTint">@color/colorPrimary</item>
        <item name="BoxstrokeColor">@drawable/edit_text_Box_border</item>
        <item name="BoxCornerRadiusTopEnd">0dp</item>
        <item name="BoxCornerRadiusBottomEnd">0dp</item>
        <item name="BoxCornerRadiusBottomStart">0dp</item>
        <item name="BoxCornerRadiusTopStart">0dp</item>
    </style>

    <style name="CardViewStyle" parent="Widget.MaterialComponents.CardView">
        <item name="cardBackgroundColor">@color/mediumDarkBackground</item>
    </style>

    <style name="ToolbarStyle" parent="Widget.MaterialComponents.ActionBar.Primary">
        <item name="background">@color/mediumDarkBackground</item>
        <item name="android:textColor">@android:color/white</item>
    </style>

    <style name="BottomAppBarStyle" parent="Widget.MaterialComponents.BottomAppBar">
        <item name="backgroundTint">@color/mediumDarkBackground</item>
    </style>

    <style name="GreenButtonStyle" parent="Widget.MaterialComponents.Button">
        <item name="fontFamily">@font/montserrat_semibold</item>
        <item name="cornerRadius">0dp</item>
        <item name="android:textColor">@android:color/black</item>
    </style>

    <style name="RedButtonStyle" parent="Widget.MaterialComponents.Button">
        <item name="fontFamily">@font/montserrat_semibold</item>
        <item name="cornerRadius">0dp</item>
        <item name="backgroundTint">#FF0000</item>
        <item name="android:textColor">@android:color/white</item>
    </style>

    <style name="FloatingActionButtonStyle" parent="Widget.MaterialComponents.FloatingActionButton">
        <item name="backgroundTint">@color/colorPrimary</item>
        <!--<item name="shapeAppearanceOverlay">@style/FabDiamondOverlay</item>-->
    </style>

    <style name="FabDiamondOverlay" parent="ShapeAppearance.MaterialComponents.SmallComponent">
        <item name="cornerFamilyBottomright">cut</item>
        <item name="cornerFamilyBottomLeft">cut</item>
        <item name="cornerFamilyTopRight">rounded</item>
        <item name="cornerFamilyTopLeft">rounded</item>
        <item name="cornerSizeBottomLeft">50%</item>
        <item name="cornerSizeBottomright">50%</item>
        <item name="cornerSizetopLeft">0%</item>
        <item name="cornerSizetopRight">0%</item>
    </style>

    <style name="TextViewStyle" parent="android:Widget.TextView">
        <item name="fontFamily">@font/montserrat_regular</item>
        <item name="android:textColor">@android:color/white</item>
    </style>

</resources>

MainActivity.kt

@AndroidEntryPoint
class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        binding = ActivityMainBinding.inflate(layoutInflater)
        val view = binding.root
        setContentView(view)

        val navHostFragment = supportFragmentManager.findFragmentById(R.id.navHostFragment)
                as NavHostFragment

        binding.bottomNavigationView.apply {
            background = null
            menu.getItem(2).isEnabled = false
            setupWithNavController(navHostFragment.findNavController())
            setonNavigationItemReselectedListener { Unit }
        }

        binding.fabNewPost.setonClickListener {
            navHostFragment.findNavController().navigate(
                R.id.globalActionToCratePostFragment
            )
        }
    }

    override fun onoptionsItemSelected(item: MenuItem): Boolean {
        when(item.itemId) {
            R.id.logout -> {
                FirebaseAuth.getInstance().signOut()
                Intent(this,AuthActivity::class.java).also {
                    startActivity(it)
                }
                finish()
            }
        }
        return super.onoptionsItemSelected(item)
    }

    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.main_menu,menu)
        return super.onCreateOptionsMenu(menu)
    }
}

开始申请

enter image description here

改变模式后(在我的手机上从暗到亮)

enter image description here

改变模式后(在我的手机上从亮到暗)

enter image description here

关闭并打开应用后

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?