Skip to content

Instantly share code, notes, and snippets.

@override
Widget build(BuildContext context) {
return MaterialApp(
theme: kBaseThemeData,
home: Scaffold(
body: IndexedStack(
index: _currentIndex,
children: <Widget>[
VocabConfigurationListScreen(),
GrammarHomeWidget()
final kBaseThemeData = ThemeData(
primaryColor: Color.fromRGBO(58, 66, 86, 1.0),
backgroundColor: Color.fromRGBO(58, 66, 86, 1.0)
);
class _MyAppState extends State<MyApp> {
int _currentIndex = 0;
@override
Widget build(BuildContext context) {
Widget createLevelMenu() {
return PopupMenuButton<GrammarLevel>(
color: kBaseThemeData.primaryColor,
onSelected: _selectLevel,
itemBuilder: (BuildContext context) {
return GrammarLevel.values.map((level) {
String title = level.toString().split('.').last;
return PopupMenuItem<GrammarLevel>(
value: level,
child: Text(
class _SentenceWidgetState extends State<SentenceWidget> {
bool isDisplayDefinition = false;
Timer timer;
@override
Widget build(BuildContext context) {
return ListTile(
onTap: toggleDefinitionVisibility,
contentPadding: EdgeInsets.all(8),
* {
color: #000000!important;
font-weight:900 !important;
border-color: #555555 !important;
scrollbar-arrow-color: #CCCCCC !important;
scrollbar-base-color: #2266AA !important;
scrollbar-shadow-color: #2266AA !important;
scrollbar-face-color: #333333 !important;
scrollbar-highlight-color: #2266AA !important;
scrollbar-dark-shadow-color: #2266AA !important;
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
injectCSS();
injectJS();
super.onPageFinished(view, url);
}
});
sequenceDiagram
Activity->>+NinjiaWebView: 1.loadUrl(normalUrl)
NinjiaWebView->>WebKitEngine: 2. trigger loading
WebKitEngine-->>NinjiaWebView: 3. onPageFinished()
NinjiaWebView->>NinjiaWebView: 4. injectCSS()
NinjiaWebView->>-NinjiaWebView: 5. loadUrl(javascript)
// 建立 loadbalancer object,指定想要產生的 isolate 數目
Future<LoadBalancer> loadBalancer = LoadBalancer.create(8, IsolateRunner.spawn);
typedef Uint8List ImageProcessFunction(Uint8List bytes);
// 將 loadBalancer 相關操作包成 function。 這一步並非是必要的,可以直接使用 line 9 和 line 11。
Future<Uint8List> loadBalancerRun(ImageProcessFunction function, Uint8List bytes) async {
// 在使用 loadBalancer 時,要先 await 一下,取得資源
final lb = await loadBalancer;
// 呼叫 lb.run,執行原本 compute 在進行的工作
@plateaukao
plateaukao / demo_of_longpress_pop_feature.dart
Created July 25, 2020 08:58
A dart code snippet to support longpress display popup dialog feature, when finger leaves, the popup will be closed too.
// Implement a function to create OverlayEntry
OverlayEntry getMyOverlayEntry({
@required BuildContext context,
SomeData someData,
}) {
return OverlayEntry(
builder: (context) {
return AlertDialog(child: SomeWidgetAgain());
}
);
@plateaukao
plateaukao / intl_pubspec.yml
Created August 16, 2020 03:12
sample of intl for flutter
dependencies:
flutter:
sdk: flutter
# Internationalization support.
flutter_localizations:
sdk: flutter
intl: 0.16.1
# the rest of your dependencies