Как сделать прозрачную навигационную панель с помощью Material3 Express and Navigation3?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как сделать прозрачную навигационную панель с помощью Material3 Express and Navigation3?

Сообщение Anonymous »

Я пытаюсь получить прозрачную панель навигации в моем приложении. Некоторые приложения Android имеют эту функцию, где содержимое скользит под кнопками навигации (которые находятся на прозрачной поверхности), и он уважает высоту полосы, чтобы обеспечить взаимодействие с пользователем. Существуют также нижние навигационные стержни, которые проводят поверхность под навигационными кнопками и отображают контент выше. По сути, я пытаюсь получить это и это и следовать рекомендуемым рекомендациям. Мое приложение основано на одной активности, с функцией oncreate () mainActiviy как:

Код: Выделить всё

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

installSplashScreen().setKeepOnScreenCondition {
return@setKeepOnScreenCondition mainViewModel.showSplashScreen
}

enableEdgeToEdge()

setContent {
PionTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
//Content here!
}
}
}
}
< /code>
Мой материал довольно проста: < /p>
@Composable
fun PionTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
dynamicColor: Boolean = true,
content: @Composable () -> Unit
) {
val colorScheme = when {
dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
val context = LocalContext.current
if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
}

darkTheme -> darkScheme
else -> lightScheme
}

MaterialExpressiveTheme(
colorScheme = colorScheme,
typography = typography,
content = content
)
}
< /code>
Моя конфигурация для тем в манифесте: < /p>


...







< /code>
Мои темы XML следующие: < /p>
 
, если я применяю его к модификатору текста, я получаю: 
 < /p>
Если я удалю нижнюю панель, навигационная полоса с помощью, даже прозрачно, а содержание в лазиколомме не прокручивается позади него даже с применением modifier.fillmaxsize () < /code>. Тем не менее, я использую значения заполнения, предоставленные каркасом. Стоит отметить, что строка состояния работает совершенно нормально (она прозрачна и позволяет мне нарисовать контент, если без проблем и использования модификатора. SafecontentPadding ()  заставляет композиционные устройства избегать строки состояния) просто из коробки, поэтому я подумал, что бара NAV также будет работать, но это не так!  Я хочу избежать любого windowcompat.setdecorfitssystemwindows (window, false)  или аналогичный код; Насколько я понимаю, прозрачная навигационная панель автоматически обрабатывается enableedGetoEdge ()  и материалом. Заранее спасибо за предложение!  

Подробнее здесь: [url]https://stackoverflow.com/questions/79728623/how-do-i-make-my-navigation-bar-transparent-with-material3-expressive-and-naviga[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»