When keyboard is closed then my snackbar shows perfectly but when it opened its not showing properly in ios
Future<void> _login() async {
if (!_formKey.currentState!.validate()) return;
final request = LoginRequest(
countryCode: "+91",
phoneNumber: _phoneNumberController.text,
);
try {
final response = await http.post(
Uri.parse('xxxxxx'),
headers: {'Content-Type': 'application/json'},
body: jsonEncode(request.toJson()),
);
print('Response status: ${response.statusCode}');
print('Response body: ${response.body}');
if (response.statusCode == 200 || response.statusCode == 201) {
final data = jsonDecode(response.body);
final loginResponse = LoginResponse.fromJson(data);
await _saveUserData('Your Name', _phoneNumberController.text);
if (loginResponse.message != '' && loginResponse.message.isNotEmpty) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(loginResponse.message)),
);
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => OtpScreen(
phoneNumber: _phoneNumberController.text,
countryCode: '+91',
),
),
);
} else {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Login successful, but no message provided')),
);
}
} else {
final errorData = jsonDecode(response.body);
final errorMessage = errorData['message'] ?? 'Failed to sign up';
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(errorMessage)),
);
}
} catch (e) {
print('Error: $e');
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('An error occurred: $e')),
);
}
}
I want when keyboard opens then also the snackbar shows properly and i have seen many soluitons for android but not in ios
When keyboard is closed then my snackbar shows perfectly but when it opened its not showing properly in ios
Future<void> _login() async {
if (!_formKey.currentState!.validate()) return;
final request = LoginRequest(
countryCode: "+91",
phoneNumber: _phoneNumberController.text,
);
try {
final response = await http.post(
Uri.parse('xxxxxx'),
headers: {'Content-Type': 'application/json'},
body: jsonEncode(request.toJson()),
);
print('Response status: ${response.statusCode}');
print('Response body: ${response.body}');
if (response.statusCode == 200 || response.statusCode == 201) {
final data = jsonDecode(response.body);
final loginResponse = LoginResponse.fromJson(data);
await _saveUserData('Your Name', _phoneNumberController.text);
if (loginResponse.message != '' && loginResponse.message.isNotEmpty) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(loginResponse.message)),
);
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => OtpScreen(
phoneNumber: _phoneNumberController.text,
countryCode: '+91',
),
),
);
} else {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Login successful, but no message provided')),
);
}
} else {
final errorData = jsonDecode(response.body);
final errorMessage = errorData['message'] ?? 'Failed to sign up';
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(errorMessage)),
);
}
} catch (e) {
print('Error: $e');
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('An error occurred: $e')),
);
}
}
I want when keyboard opens then also the snackbar shows properly and i have seen many soluitons for android but not in ios
Share Improve this question edited Nov 19, 2024 at 10:43 Tanu Purohit asked Nov 19, 2024 at 9:13 Tanu PurohitTanu Purohit 1231 silver badge8 bronze badges1 Answer
Reset to default 0Please add this SnackBarBehavior.floating
, like this:
SnackBar(
content: Text(loginResponse.message),
behavior: SnackBarBehavior.floating, // Make the snackbar float above other content
),