#android #flutter #stream-builder
#Android #флаттер #stream-builder
Вопрос:
Я знаю, что этот вопрос задавался несколько раз, и я попробовал то, что было предложено, то есть разместил «return» в нужных местах. Я также следовал инструкциям в своей консоли и попытался добавить пустой контейнер, но что происходит, так это то, что мой экран становится черным. Итак, вот мой код:
class SettingsPage extends StatefulWidget {
@override
_SettingsPageState createState() => _SettingsPageState();
}
class _SettingsPageState extends State<SettingsPage> {
@override
Widget build(BuildContext context) {
bool isSystemSelected;
final stream = AllowedCallInheritedWidget.of(context).allowedCallStream;
return StreamBuilder<String>(
stream: stream,
builder: (context, snapshot) {
if (snapshot.data.toString().contains('PRIORITY_SENDERS_CONTACTS')) {
isSystemSelected = true;
return AlertDialog(
backgroundColor: isSystemSelected ? Colors.blueGrey : Colors.amber,
title: Text(snapshot.data),
);
} else if (snapshot.data
.toString()
.contains('PRIORITY_SENDERS_STARRED')) {
isSystemSelected = true;
return AlertDialog(
backgroundColor: isSystemSelected ? Colors.blueGrey : Colors.amber,
title: Text(snapshot.data),
);
} else if (snapshot.data.toString().contains('PRIORITY_SENDERS_ANY')) {
isSystemSelected = true;
return AlertDialog(
backgroundColor: isSystemSelected ? Colors.blueGrey : Colors.amber,
title: Text(snapshot.data),
);
}
},
);
}
}
То, что я пытаюсь сделать, это обновить системные изменения Android в режиме реального времени. Спасибо за любую помощь!
Редактировать: я должен добавить, что «Оскорбительный виджет: StreamBuilder»
Комментарии:
1. Вы должны добавить последнее
else
, потому что вашеelse if
не может быть выполнено2. Спасибо @RubensMelo, я добавил: else { return CircularProgressIndicator(); } Теперь все, что я получаю, это круговой индикатор выполнения.
3. тогда все ваши условия if не являются ложными. проверьте значение, чтобы выполнить правильную проверку