Here I don't want to rebuild or update other widgets, I have to put the consumer
at upper level
@override Widget build(BuildContext context) { PositionProvider positionProvider = Provider.of(context, listen: false);
return Scaffold(
appBar: AppBar(
title: Text("Test Provider"),
),
body: Consumer<PositionProvider>(
builder: (context, value, child) => Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
TextButton(
onPressed: () =>
positionProvider.setSelectedPosition("Start"),
child: Text("Start")),
TextButton(
onPressed: () =>
positionProvider.setSelectedPosition("Center"),
child: Text("Center")),
TextButton(
onPressed: () =>
positionProvider.setSelectedPosition("End"),
child: Text("End"))
],
),
Row(
mainAxisAlignment: positionProvider.getSelectedPosition == "Start"
? MainAxisAlignment.start
: positionProvider.getSelectedPosition == "Center"
? MainAxisAlignment.center
: MainAxisAlignment.end,
children: [Text("Message")],
),
Html(data: positionProvider.getHtmlContents)
],
),
),
);
}