Zus*_*kin 1 flutter flutter-layout
我需要根据语言选择更改小部件的 textDirection。我的全局翻译类中有一个 textDirection 变量,并将其添加到父小部件中。除了 DropdownMenuItems 之外,所有工作都很好。我尝试通过方向性小部件包装文本小部件,但仍然无法按预期工作。例如:当我更改使用 rtl 项目的语言时,应该向右对齐,这目前没有发生。
return DropdownMenuItem(
child: Directionality(textDirection: Translations.textDirection ,
child: new Text(listItems,textDirection: Translations.textDirection,)
...
Run Code Online (Sandbox Code Playgroud)
我还尝试在用容器包装整个 DropdownButton 后添加 textDirection。
return Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
textDirection: Translations.textDirection,
children: <Widget>[
DropdownButton(
Run Code Online (Sandbox Code Playgroud)
但还是不行。我应该怎么做才能改变 DropdownMenuItems 的 textDirection ?任何帮助将不胜感激。
注意:我无法将 textDirection 添加到 MaterialApp。选择不同的语言时需要更改它。
Hus*_*li 5
DropdownButton<String>(
hint: Text(
'City',
style: TextStyle(fontFamily: 'Cairo'),
),
isExpanded: true,
value: dropdownValue,
elevation: 4,
style: TextStyle(
color: Colors.deepPurple, fontFamily: 'Cairo'),
underline: Container(
height: 2,
color: Colors.deepPurpleAccent,
),
onChanged: (String newValue) {
setState(() {
dropdownValue = newValue;
debugPrint(cityInfo.indexOf(newValue).toString());
});
},
items:
cityInfo.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Container(
alignment: Alignment.centerRight,
child: Text(
value,
),
),
);
}).toList(),
),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1397 次 |
| 最近记录: |