TextTheme
snippet.packages.flutter.lib.src.material.text_theme.399.
// ignore_for_file: directives_ordering
// ignore_for_file: unnecessary_import
// ignore_for_file: unused_import
// ignore_for_file: unused_element
// ignore_for_file: unused_local_variable
import 'dart:async';
import 'dart:convert';
import 'dart:math' as math;
import 'dart:typed_data';
import 'dart:ui' as ui;
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/painting.dart';
import 'package:flutter/physics.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/semantics.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/animation.dart';
import 'package:flutter/services.dart';
// From: packages/flutter/lib/src/material/text_theme.dart:399
/// A Widget that sets the ambient theme's title text color for its
/// descendants, while leaving other ambient theme attributes alone.
class TitleColorTheme extends StatelessWidget {
const TitleColorTheme({Key? key, required this.child, required this.titleColor}) : super(key: key);
final Color titleColor;
final Widget child;
@override
Widget build(BuildContext context) {
ThemeData theme = Theme.of(context);
// This partialTheme is incomplete: it only has the title style
// defined. Just replacing theme.textTheme with partialTheme would
// set the title, but everything else would be null. This isn't very
// useful, so merge it with the existing theme to keep all of the
// preexisting definitions for the other styles.
final TextTheme partialTheme = TextTheme(titleLarge: TextStyle(color: titleColor));
theme = theme.copyWith(textTheme: theme.textTheme.merge(partialTheme));
return Theme(data: theme, child: child);
}
}
SHARE: