How can I get my snackbar to show up above the ime...
# compose
b
How can I get my snackbar to show up above the ime, but not like WAYY above. If I add imePadding() to my snackBarHost modifier it shows up wayy above the IME, if I don't add it, it shows up below the ime. 🧵 contains a modified MainActivity from the Empty Compose Android Studio Template.
Copy code
package com.example.testsnackbarinset

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.imePadding
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.BottomAppBar
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Snackbar
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.example.testsnackbarinset.ui.theme.TestSnackbarInsetTheme
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            TestSnackbarInsetTheme {
                val snackbarHostState = remember { SnackbarHostState() }
                val coroutineScope = rememberCoroutineScope()
                Scaffold(modifier = Modifier.fillMaxSize(),
                    bottomBar = {
                        BottomAppBar {
                            Text("Bottom bar")

                        }

                    },
                    snackbarHost = {
                        SnackbarHost(
                            hostState = snackbarHostState,
                            modifier = Modifier.imePadding()
                        ) {
                            Snackbar(snackbarData = it)
                        }
                    }) { innerPadding ->
                    LaunchedEffect(Unit) {
                        coroutineScope.launch {
                            delay(5000)
                            snackbarHostState.showSnackbar("Hello")
                        }
                    }
                    Box(
                        modifier = Modifier
                            .padding(innerPadding)
                            .fillMaxSize()
                    ) {
                        OutlinedTextField(
                            value = "Egg",
                            onValueChange = {},
                            modifier = Modifier.align(Alignment.Center)
                        )
                    }

                }
            }
        }
    }
}

@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
    Text(
        text = "Hello $name!",
        modifier = modifier
    )
}

@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
    TestSnackbarInsetTheme {
        Greeting("Android")
    }
}
this is on Android and enableEdgeToEdge() is setup in MainActivity.
l
What do you mean by way above? Could you please provide two screenshots of with or without ime padding?
☝️ 2