Я работаю над приложением для Android, действие которого содержит нижнюю панель навигации и три фрагмента. Я хочу, чтобы мой HomeFragment имел отображение от края до края, но когда я включаю режим от края до края в своей базовой активности, это влияет на все фрагменты, а это не то, что мне нужно.
Вот что я пробовал на данный момент:
Базовая активность в режиме Edge-to-Edge:
Включение сквозного режима в базовом действии обеспечивает сквозное соединение всех фрагментов.
< /li>
Пример: HomeFragment с от края до края
Проблема в других фрагментах:
Другие фрагменты также наследуют Edge- режим до края, который мне не нужен.
Пример: нежелательный режим «от края до края» в другом фрагменте
@AndroidEntryPoint
class SimActivity : AppCompatActivity() {
private val binding by lazy {
ActivitySimBinding.inflate(layoutInflater)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
enableEdgeToEdge()
setupBottomNavs()
}
private fun setupBottomNavs(){
binding.bottomNav.selectedItemId = R.id.homeFragment // Set the default selected item to home
setFragment(HomeFragment())
binding.bottomNav.setOnItemSelectedListener(object : NavigationBarView.OnItemSelectedListener {
override fun onNavigationItemSelected(newTab: MenuItem): Boolean {
when (newTab.itemId) {
R.id.homeFragment -> {
switchFragment(HomeFragment())
return true
}
R.id.ordersFragment -> {
switchFragment(OrdersFragment())
return true
}
R.id.saleFragment -> {
switchFragment(SaleFragment())
return true
}
}
return false
}
})
}
private fun setFragment(homeFragment: HomeFragment) {
supportFragmentManager
.beginTransaction()
.add(R.id.frameLayout,homeFragment) // Add this line
.commitNow()
}
private fun switchFragment(fragment: Fragment) {
val transaction = supportFragmentManager.beginTransaction()
for (existingFragment in supportFragmentManager.fragments) {
transaction.hide(existingFragment)
}
var showFragment = supportFragmentManager.findFragmentByTag(fragment.javaClass.simpleName)
if (showFragment == null) {
showFragment = fragment
transaction.add(R.id.frameLayout, showFragment, fragment.javaClass.simpleName)
} else {
transaction.show(showFragment)
}
transaction.commitAllowingStateLoss()
}
}
Моя цель — включить сквозной режим только тогда, когда HomeFragment активен и имеет строку состояния по умолчанию. поведение для других фрагментов. Как я могу добиться этого выборочно?
Я работаю над приложением для Android, действие которого содержит нижнюю панель навигации и три фрагмента. Я хочу, чтобы мой HomeFragment имел отображение от края до края, но когда я включаю режим от края до края в своей базовой активности, это влияет на все фрагменты, а это не то, что мне нужно. Вот что я пробовал на данный момент: [list] [*][b]Базовая активность в режиме Edge-to-Edge:[/b] [list] Включение сквозного режима в базовом действии обеспечивает сквозное соединение всех фрагментов. < /li> Пример: HomeFragment с от края до края
[/list]
[*][b]Проблема в других фрагментах:[/b] [list] Другие фрагменты также наследуют Edge- режим до края, который мне не нужен.
[*]Пример: нежелательный режим «от края до края» в другом фрагменте [/list] [b]Это мой код базовой активности:[/b] [code]@AndroidEntryPoint class SimActivity : AppCompatActivity() {
private val binding by lazy { ActivitySimBinding.inflate(layoutInflater) }
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(binding.root) enableEdgeToEdge() setupBottomNavs()
}
private fun setupBottomNavs(){ binding.bottomNav.selectedItemId = R.id.homeFragment // Set the default selected item to home setFragment(HomeFragment()) binding.bottomNav.setOnItemSelectedListener(object : NavigationBarView.OnItemSelectedListener { override fun onNavigationItemSelected(newTab: MenuItem): Boolean { when (newTab.itemId) { R.id.homeFragment -> { switchFragment(HomeFragment()) return true } R.id.ordersFragment -> { switchFragment(OrdersFragment()) return true } R.id.saleFragment -> { switchFragment(SaleFragment()) return true } } return false } }) }
private fun setFragment(homeFragment: HomeFragment) { supportFragmentManager .beginTransaction() .add(R.id.frameLayout,homeFragment) // Add this line .commitNow() }
private fun switchFragment(fragment: Fragment) { val transaction = supportFragmentManager.beginTransaction() for (existingFragment in supportFragmentManager.fragments) { transaction.hide(existingFragment) } var showFragment = supportFragmentManager.findFragmentByTag(fragment.javaClass.simpleName) if (showFragment == null) { showFragment = fragment transaction.add(R.id.frameLayout, showFragment, fragment.javaClass.simpleName) } else { transaction.show(showFragment) } transaction.commitAllowingStateLoss()
}
} [/code]
[/list] Моя цель — включить сквозной режим только тогда, когда HomeFragment активен и имеет строку состояния по умолчанию. поведение для других фрагментов. Как я могу добиться этого выборочно?
Я работаю над приложением для Android, действие которого содержит нижнюю панель навигации и три фрагмента. Я хочу, чтобы мой HomeFragment имел отображение от края до края, но когда я включаю режим от края до края в своей базовой активности, это...
Итак, у меня есть такая проблема. Мой последний элемент recyclerview скрыт в нижней части навигации. Нижняя навигация активна. Recyclerview находится во фрагменте. Я не нашел ответа.
Вот макет моего фрагмента, который содержит recyclerview...
Вопрос
В настоящее время я разрабатываю приложение для Android и реализовал нижнюю панель приложения, используя библиотеку компонентов материалов. Однако при запуске приложения я замечаю неожиданное заполнение нижней части, которое влияет на макет...
Вопрос
В настоящее время я разрабатываю приложение для Android и реализовал нижнюю панель приложения, используя библиотеку компонентов материалов. Однако при запуске приложения я замечаю неожиданное заполнение нижней части, которое влияет на макет...
Я пытаюсь отобразить карту с помощью Map API v2.
Я искал ответ, аналогичный моей проблеме.
23 июля: «Ошибка Android: строка двоичного XML-файла № 16: ошибка при раздувании». фрагмент класса при добавлении фрагмента карты.
И я изменил свои источники...