Chcę zmienić rodzinę czcionki widgetowej {x0}}.

Co oznacza, że stworzyłem Container iw tej Container Dodałem wiele widgetu stylu tekstu z widżetem GestureDetector. Więc za każdym razem, gdy kliknąłem na szczególną rodzinę czcionki, chcę zmienić mój Text Widget font-fast.

Wszelkie sugestie dotyczące wykonania tego rodzaju funkcjonalności.

0
Jaimin Bhikadiya 18 marzec 2020, 10:39

2 odpowiedzi

Najlepsza odpowiedź

Użyj zmiennej do przechowywania nazwy czcionki

Odniesienie do widgetu text

Następnie zadzwoń setState, aby zaktualizować wartość zmiennej i interfejsu użytkownika

String fontName;

//your TextWidget
Text("some text for testing",
     style: TextStyle( fontFamily: fontName )
)

//function to update the value
_updateFont(String name){
  setState((){
    fontName = name;
  });
}

Upewnij się, że importujesz czcionki do użycia Dodaj je w pubspec.yaml Plik pod fonts

- family: font1
  fonts:
    - asset: assets/fonts/font1.ttf
0
Vicky Salunkhe 18 marzec 2020, 08:12

Mam nadzieję, że to działa lub modyfikuje odpowiednio:

Kod wewnątrz widgetu tekstowego:

Text("Your Text",
              style: tapped
              ?TextStyle(fontFamily: 'Your-Font-Family')
              :TextStyle(fontFamily: 'Your-Second-Font-Family'),
              ),

Kod wewnątrz detektora gestu:

 GestureDetector(
              child: your child widget,
              onTap: () {
              setState(() {
                tapped = !tapped;
              });
            }),

I pamiętaj, aby zdefiniować bool tapped; w klasie widżetu.

Nadal, jeśli zmierzysz się z żadną trudnością, dodaj kod do komentarza, więc mogę ci pomóc.

1
Adithya Shetty 18 marzec 2020, 08:20