Hibok
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 
 
 

94 řádky
2.7 KiB

  1. import 'package:chat/chat/my_special_text_span_builder.dart';
  2. import 'package:extended_text/extended_text.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter/services.dart';
  5. import 'dart:ui' as ui show window;
  6. class Screen {
  7. static double uiFactor = 1.0;
  8. static initFactor() {
  9. uiFactor = width / 640;
  10. }
  11. static double get width {
  12. MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
  13. return mediaQuery.size.width;
  14. }
  15. static double get height {
  16. MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
  17. return mediaQuery.size.height;
  18. }
  19. static double get scale {
  20. MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
  21. return mediaQuery.devicePixelRatio;
  22. }
  23. static double get textScaleFactor {
  24. MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
  25. return mediaQuery.textScaleFactor;
  26. }
  27. static double get navigationBarHeight {
  28. MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
  29. return mediaQuery.padding.top + kToolbarHeight;
  30. }
  31. static double get topSafeHeight {
  32. MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
  33. return mediaQuery.padding.top;
  34. }
  35. static double get bottomSafeHeight {
  36. MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window);
  37. return mediaQuery.padding.bottom;
  38. }
  39. static updateStatusBarStyle(SystemUiOverlayStyle style) {
  40. SystemChrome.setSystemUIOverlayStyle(style);
  41. }
  42. }
  43. fixedFontSize(double fontSize) {
  44. return fontSize / Screen.textScaleFactor;
  45. }
  46. fixedText(data, {Color color, double fontSize, FontWeight fontWeight}) {
  47. return Text(data,
  48. textScaleFactor: 1.0,
  49. style: TextStyle(
  50. fontSize: fontSize ?? 14.0, color: color, fontWeight: fontWeight));
  51. }
  52. extendedText(String text,
  53. {Color color = Colors.blue,
  54. double fontSize = 14,
  55. selectionEnabled = false,
  56. double emojisize = 20.0,
  57. Function hideKeyboard,
  58. fontWeight,int maxLines,
  59. Function onSpecialTextTap
  60. }) {
  61. return ExtendedText(
  62. text,
  63. onSpecialTextTap: onSpecialTextTap,
  64. textAlign: TextAlign.left,
  65. maxLines: maxLines,
  66. specialTextSpanBuilder: MySpecialTextSpanBuilder(emojiSize: emojisize),
  67. textScaleFactor: 1.0,
  68. style: TextStyle(fontSize: fontSize, color: color, fontWeight: fontWeight),
  69. selectionEnabled: selectionEnabled,
  70. );
  71. }
  72. setStatusBar(){
  73. SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
  74. statusBarColor: Colors.transparent,
  75. statusBarBrightness: Brightness.light,
  76. statusBarIconBrightness: Brightness.dark,
  77. systemNavigationBarColor: Colors.white,
  78. systemNavigationBarIconBrightness: Brightness.dark));
  79. }