如何解决片段不显示视图元素
我使用的是 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)
}
}
开始申请
改变模式后(在我的手机上从暗到亮)
改变模式后(在我的手机上从亮到暗)
关闭并打开应用后
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。