Bottom navigation не показывает View компоненты
Я пытаюсь создать Bottom navigation с помощью Navigation Component, но столкнулся с одной проблемой: в моих фрагментах не отображаются элементы представления. Я думаю, это потому, что что-то пошло не так с моими стилями (в версии 4.1.2 у нас есть themes.xml и themes (night) .xml вместо styles.xml). И я поставил одинаковые стили для обоих файлов. Но когда я запускаю своё приложение на устройстве (с темным режимом), мои фрагменты не показывают элементы представления, после этого я попытался изменить режим (с темного на светлый) и увидел элементы представления (Менял тему через шторку). Но после этого я снова попытался изменить режим (обратно в темный режим) и увидел, что некоторые из моих элементов стали тусклыми. Это странно, потому что я использую одну и ту же тему и одинаковые цвета для обоих themes.xml. Еще одна вещь, после смены режима все работает, но после закрытия и перезапуска приложение больше не отображает элементы просмотра. Как это исправить?
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)
}
}
themes.xml и themes.xml(night)
<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>