Потяните, чтобы обновить, не перестанет обновляться во флаттереAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Потяните, чтобы обновить, не перестанет обновляться во флаттере

Сообщение Anonymous »

у меня есть вопрос
здесь я получаю данные из API и создал вторую страницу, которую могу публиковать из своего приложения в API.
когда я публикую что-то и возвращаюсь на главную страницу, где все сообщения из моего API освещены, мне нужно обновить... когда я обновляю его, новое сообщение будет добавлено, но круг обновления выиграл не перестаю обновлять ..
я понятия не имею, что делать ..
в одном месте я прочитал это из-за установленного состояния, которое создает инфинитив цикл .. но в моем случае мне нужно установленное состояние для обновления пользовательского интерфейса .. скажите, пожалуйста, что делать. пожалуйста, помогите мне, спасибо.
это мой код:
class MyApp extends StatelessWidget {
const MyApp({super.key});

@override
Widget build(BuildContext context) {
return const MaterialApp(
home: MyPage(),
);
}
}

class MyPage extends StatefulWidget {
const MyPage({super.key});

@override
State createState() => _MyPageState();
}

class _MyPageState extends State {
final RefreshController _myrefreshcontroller = RefreshController();
late List? listpost;
@override
void initState() {
fetchAllPosts().then((value) => listpost = value);
super.initState();
}

void _onRefresh() async {
await fetchAllPosts().then((value) {
setState(() {
listpost = value;
});
});
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('welcome welcome'),
),
body: Center(
child: FutureBuilder(
future: fetchAllPosts(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return SmartRefresher(
controller: _myrefreshcontroller,
onRefresh: _onRefresh,
child: ListView.builder(
itemCount: listpost!.length,
itemBuilder: (context, index) {
return Card(
child: ListTile(
contentPadding: const EdgeInsets.all(20),
title: Padding(
padding: const EdgeInsets.all(20),
child: Text(listpost![index].id.toString())),
subtitle: Padding(
padding: const EdgeInsets.all(20),
child: Text(listpost![index].content.toString())),
),
);
},
),
);
} else if (snapshot.hasError) {
return Text("${snapshot.error}");
}
return const CircularProgressIndicator();
},
),
),


Подробнее здесь: https://stackoverflow.com/questions/786 ... in-flutter
Ответить

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

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

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

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

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