0

PageView.builderページを返す があります。それぞれにタイトルとタグが付いています。EditPageユーザーがタイトルを編集できるようにするものもあります。編集されたタイトルは、MySQL データベース上の PHP を介して更新されます。
個々のページを新しいタイトルで自動的に更新することはできますか? または、タイトルを更新するたびに PageView を完全に再構築する必要がありますか?

PageView.builderコードは次のとおりです。

class StageBuilder extends StatelessWidget {
  final List<SpeakContent> speakcrafts;

  StageBuilder(this.speakcrafts);

  @override
  Widget build(context) {
    return PageView.builder(
      itemCount: speakcrafts.length,
      itemBuilder: (context, int currentIndex) {
        return createViewItem(speakcrafts[currentIndex], context);
      },
    );
  }

  Widget createViewItem(SpeakContent speakcraft, BuildContext context) {

    return Column(
      children: <Widget>[
        Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              speakcraft.title,
            ),
          ],
        ),
        Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              speakcraft.tagname,
            ),
          ],
        ),
      ],
    );
  }
}

PHP/MYSQL データベースに投稿するためのコードは次のとおりです。

Future<String> titleUpdate({String opid, String title}) async {
  String upDateUrl;
  upDateUrl = "http://example.com?title=" + title;

  final response = await get(upDateUrl);

  if (response.statusCode == 200) {
    print(response.body);
    return response.body;
  } else
    throw Exception('We were not able to successfully update the title');
}
4

2 に答える 2

0

私が望んでいたものとはまったく異なりますが、最終的には、ユーザーがアプリバーから更新されたページに戻ることができるようにすることにしました。私が送信したパラメーターは、編集された 1 つのページだけで新しいページを再構築しました。

 appBar: AppBar(
    title: Text(
      "Back to edited page",
      style: TextStyle(
        fontSize: 14,
        color: Colors.blueGrey,
      ),
    ),

    leading: new IconButton(
      icon: new Icon(
        Icons.arrow_back,
        color: Colors.white,
      ),
      onPressed: () {
        Navigator.push(
            context,
            PageTransition(
              type: PageTransitionType.downToUp,
              child: HomePage(stagetype: 'edit', currentaudioid: widget.opid,),
            ));
      },
    ),
   ),
于 2020-08-17T20:46:04.463 に答える