Skip to content

Instantly share code, notes, and snippets.

@mindeng
Created July 21, 2019 08:09
Show Gist options
  • Save mindeng/200424587b0908afc7f313df09d24a39 to your computer and use it in GitHub Desktop.
Save mindeng/200424587b0908afc7f313df09d24a39 to your computer and use it in GitHub Desktop.
Reuse widgets in Flutter
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: HelloWidget(),
);
}
}
class HelloWidget extends StatefulWidget {
HelloWidget({Key key}) : super(key: key);
_HelloWidgetState createState() => _HelloWidgetState();
}
class _HelloWidgetState extends State<HelloWidget> {
@override
Widget build(BuildContext context) {
final text = TextWidget("abcd");
return Container(
child: Column(
children: <Widget>[
text,
text,
text,
],
),
);
}
}
class TextWidget extends StatefulWidget {
final String text;
TextWidget(this.text, {Key key}) : super(key: key);
_TextWidgetState createState() => _TextWidgetState();
}
class _TextWidgetState extends State<TextWidget> {
@override
Widget build(BuildContext context) {
Element element = context as Element;
debugPrint(
"widget: ${widget.hashCode} state: ${this.hashCode} element: ${context.hashCode} renderObject: ${element.renderObject.hashCode}"
" w: ${element.widget.hashCode}");
return Text(widget.text);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment