Skip to content

Commit 7cefda2

Browse files
committed
La lista de idiomas ahora funciona al oscurecer el idioma seleccionado. Además de eso, la App detecta el idioma del dispositivo en que se ejecuta y, de ser un idioma diferente al español, coloca directamente el idioma Inglés...
1 parent 1754f9d commit 7cefda2

File tree

1 file changed

+69
-43
lines changed

1 file changed

+69
-43
lines changed

lib/Widgets/header.dart

Lines changed: 69 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -26,52 +26,11 @@ AppBar buildAppBar() => AppBar
2626
// Botón de más información //
2727
actions:
2828
[
29-
// Menú de idiomas //
30-
PopupMenuButton
31-
(
32-
icon: Icon(Icons.translate),
33-
iconSize: 28.0,
34-
padding: EdgeInsets.only(right: 20.0),
35-
36-
offset: Offset(0, kToolbarHeight),
37-
shape: RoundedRectangleBorder(),
38-
39-
tooltip: S.current.languages,
40-
// initialValue: "es",
41-
42-
onSelected: (languageCode)
43-
{
44-
changeLanguage(languageCode);
45-
},
46-
47-
itemBuilder: (context) =>
48-
[
49-
// Español //
50-
PopupMenuItem
51-
(
52-
value: "es",
53-
child: LanguageItem
54-
(
55-
svgPath: "assets/icons/spanish.svg",
56-
text: S.current.spanish
57-
)
58-
),
59-
60-
// Inglés //
61-
PopupMenuItem
62-
(
63-
value: "en",
64-
child: LanguageItem
65-
(
66-
svgPath: "assets/icons/english.svg",
67-
text: S.current.english
68-
)
69-
)
70-
]
71-
)
29+
LanguagesMenu()
7230
]
7331
);
7432

33+
7534
changeLanguage(String languageCode)
7635
{
7736
Get.updateLocale(Locale(languageCode));
@@ -115,4 +74,71 @@ class LanguageItem extends StatelessWidget
11574
]
11675
);
11776
}
77+
}
78+
79+
class LanguagesMenu extends StatefulWidget
80+
{
81+
@override
82+
LanguagesMenuState createState() => LanguagesMenuState();
83+
}
84+
85+
class LanguagesMenuState extends State <LanguagesMenu>
86+
{
87+
// Describe el valor que toma de cada Item del menú //
88+
// Si el idioma de quien revisa el portafolio NO es //
89+
// Español, entonces se usará Inglés... //
90+
String currentValue =
91+
Get.deviceLocale.languageCode == "es"? "es": "en";
92+
93+
@override
94+
Widget build(BuildContext context)
95+
{
96+
return // Menú de idiomas //
97+
PopupMenuButton
98+
(
99+
icon: Icon(Icons.translate),
100+
iconSize: 28.0,
101+
padding: EdgeInsets.only(right: 20.0),
102+
103+
offset: Offset(0, kToolbarHeight + 4),
104+
shape: RoundedRectangleBorder(),
105+
106+
tooltip: S.current.languages,
107+
initialValue: currentValue,
108+
109+
onSelected: (languageCode)
110+
{
111+
changeLanguage(languageCode);
112+
setState(()
113+
{
114+
currentValue = languageCode;
115+
});
116+
},
117+
118+
itemBuilder: (context) =>
119+
[
120+
// Español //
121+
PopupMenuItem
122+
(
123+
value: "es",
124+
child: LanguageItem
125+
(
126+
svgPath: "assets/icons/spanish.svg",
127+
text: S.current.spanish
128+
)
129+
),
130+
131+
// Inglés //
132+
PopupMenuItem
133+
(
134+
value: "en",
135+
child: LanguageItem
136+
(
137+
svgPath: "assets/icons/english.svg",
138+
text: S.current.english
139+
)
140+
)
141+
]
142+
);
143+
}
118144
}

0 commit comments

Comments
 (0)