Eduardo Florence

Doc pt-br: Incluída a seção de widgets de estado local

@@ -446,6 +446,16 @@ Get.contextOverlay @@ -446,6 +446,16 @@ Get.contextOverlay
446 context.width 446 context.width
447 context.height 447 context.height
448 448
  449 +// Dá a você agora o poder de definir metade da tela, um terço da dela e assim por diante.
  450 +// Útil para aplicativos responsivos.
  451 +// param dividedBy (double) opcional - default: 1
  452 +// param reducedBy (double) opcional - default: 0
  453 +context.heightTransformer()
  454 +context.widthTransformer()
  455 +
  456 +/// similar a MediaQuery.of(context).size
  457 +context.mediaQuerySize()
  458 +
449 /// similar a MediaQuery.of(this).padding 459 /// similar a MediaQuery.of(this).padding
450 context.mediaQueryPadding() 460 context.mediaQueryPadding()
451 461
@@ -487,6 +497,14 @@ context.isLargeTablet() @@ -487,6 +497,14 @@ context.isLargeTablet()
487 497
488 /// retorna True se o dispositivo é um Tablet 498 /// retorna True se o dispositivo é um Tablet
489 context.isTablet() 499 context.isTablet()
  500 +
  501 +/// Retorna um valor de acordo com o tamanho da tela
  502 +/// Os valores possíveis são:
  503 +/// swatch: se a menor dimensão (largura ou altura) da tela for menor que 300px
  504 +/// mobile: se a menor dimensão (largura ou altura) da tela for menor que 600px
  505 +/// tablet: se a menor dimensão (largura ou altura) da tela for menor que 1200px
  506 +/// desktop: se a largura da tela é maior ou iguial a 1200px
  507 +context.responsiveValue<T>()
490 ``` 508 ```
491 509
492 ### Configurações Globais opcionais e configurações manuais 510 ### Configurações Globais opcionais e configurações manuais
@@ -545,6 +563,41 @@ void localLogWriter(String text, {bool isError = false}) { @@ -545,6 +563,41 @@ void localLogWriter(String text, {bool isError = false}) {
545 } 563 }
546 ``` 564 ```
547 565
  566 +### Widgets de Estado Local
  567 +
  568 +Esses Widgets permitem que você gerencie um único valor e mantenha o estado efêmero e localmente. Temos versões para Reativo e Simples. Por exemplo, você pode usá-los para alternar obscureText em um TextField, talvez criar um painel expansível personalizado ou talvez modificar o índice atual em um BottomNavigationBar enquanto altera o conteúdo do corpo em um Scaffold.
  569 +
  570 +#### ValueBuilder
  571 +Uma simplificação de StatefulWidget que funciona com um callback de "setState" que passa o valor atualizado.
  572 +
  573 +
  574 +```dart
  575 +ValueBuilder<bool>(
  576 + initialValue: false,
  577 + builder: (value, updateFn) => Switch(
  578 + value: value,
  579 + onChanged: updateFn, // mesma assinatura! Você poderia usar ( newValue ) => updateFn( newValue )
  580 + ),
  581 + // se você precisa chamar algo fora do método builder.
  582 + onUpdate: (value) => print("Value updated: $value"),
  583 + onDispose: () => print("Widget unmounted"),
  584 +),
  585 +```
  586 +
  587 +#### ObxValue
  588 +Similar a ValueBuilder, mas esta é a versão Reativa, você passa uma instância Rx (lembra do .obs mágico?) e
  589 +atualiza automaticamente... não é incrível?
  590 +
  591 +```dart
  592 +ObxValue(
  593 + (data) => Switch(
  594 + value: data.value,
  595 + onChanged: data, // Rx tem uma função _callable_! Você poderia usar (flag) => data.value = flag,
  596 + ),
  597 + false.obs,
  598 +),
  599 +```
  600 +
548 ## Explicação em vídeo sobre Outras Features do GetX 601 ## Explicação em vídeo sobre Outras Features do GetX
549 602
550 603