android - 具有可见性的下拉菜单项给我项目之间的空白
问题描述
我希望用户从下拉菜单中选择他的地区,之后,另一个下拉菜单将显示该地区的确切城市,但是当我实现可见性小部件时,它给了我空白
我试图解决这个问题的是使用 Visibility Widgets,创建一个新列表。
@override
void initState() {
super.initState();
// * Load Data
_loadCityData();
}
// * City Data
List<Map> _citiesList;
Future _loadCityData() async {
String jsonCities = await
rootBundle.loadString("assets/json/cities.json");
setState(() {
_citiesList = List<Map>.from(jsonDecode(jsonCities) as List);
});
}
Widget _buildCitiesRun(BuildContext context) {
return DropdownButtonHideUnderline(
child: DropdownButton<String>(
hint: Text(
AppLocalizations.of(context).translate('Select City'),
style: normalBlack,
),
isExpanded: true,
style: editBoxLabel,
value: _selectedCity,
isDense: true,
onChanged: (String newValue) {
setState(() {
_selectedCity = newValue;
print('Selected City $_selectedCity');
});
},
items: _citiesList.map((cities) {
return DropdownMenuItem<String>(
value: cities.toString(),
child: Visibility(
visible: _selectedRegion == cities["region_name"] ? true
: false,
child: Row(
children: <Widget>[
// lanCode() is to get device language code
Text(
cities["name"][lanCode()].toString(),
style: normalBlack,
textAlign: TextAlign.center,
),
],
),
),
);
}).toList(),
),
);
}
来自 JSON 文件的示例。
地区:
[
{
"region_id" : 4,
"name" : {
"ar" : "حائل",
"en" : "Hail"
}
},
{
"region_id" : 5,
"name" : {
"ar" : "القصيم",
"en" : "Al Qassim"
}
},
{
"region_id" : 6,
"name" : {
"ar" : "الرياض",
"en" : "Ar Riyadh"
}
},
{
"region_id" : 7,
"name" : {
"ar" : "المدينة المنورة",
"en" : "Al Madinah"
}
}
]
城市:
[
{
"city_id" : 295,
"region_name" : "Ar Riyadh",
"name" : {
"ar" : "حفر العتك",
"en" : "Hafr Al Atk"
}
},
{
"city_id" : 296,
"region_name" : "Ar Riyadh",
"name" : {
"ar" : "المزيرع",
"en" : "Al Muzayri"
}
},
{
"city_id" : 297,
"region_name" : "Ar Riyadh",
"name" : {
"ar" : "شوية",
"en" : "Shawyah"
}
},
{
"city_id" : 306,
"region_name" : "Ar Riyadh",
"name" : {
"ar" : "الغاط",
"en" : "Al Ghat"
}
},
{
"city_id" : 307,
"region_name" : "Ar Riyadh",
"name" : {
"ar" : "مليح",
"en" : "Mulayh"
}
},
]
请参考我下面的截图。
它不应该有任何空白。谢谢。
解决方案
推荐阅读
- azure - Azure 函数无法访问 Azure Blob
- r - case_when 在 dplyr R 中有多个条件
- python - 在自定义数据集上实现更快的 RCNN
- indexing - SSMS 中的 sys.index_columns 为空
- javascript - javascript点击递增数字问题
- email - Base Elements 插件在本地工作,而不是在服务器上
- regex - 如何运行他们的描述只包含一个字符串并排除另一个字符串的摩卡测试?
- c++ - 制作子向量的向量
- node.js - 将输入发送到python标准输入时的Node.js python-shell ERR_STREAM_WRITE_AFTER_END
- testing - Rust:组织测试,以便仅测试函数/常量的模块不会导致“x is never used”警告