【发布时间】:2020-11-05 23:32:03
【问题描述】:
如何从另一个有状态类访问以下有状态类中的 _selectedCurrency 参数?
import 'dart:io' show Platform;
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'coin_data.dart';
class OsPicker extends StatefulWidget {
@override
_OsPickerState createState() => _OsPickerState();
}
class _OsPickerState extends State<OsPicker> {
String _selectedCurrency = currenciesList[0];
DropdownButton<String> androidDropDown() {
List<DropdownMenuItem<String>> dropdownItems = [];
for (String currency in currenciesList) {
var newItem = DropdownMenuItem(
child: Text(currency),
value: currency,
);
dropdownItems.add(newItem);
}
return DropdownButton<String>(
value: _selectedCurrency,
items: dropdownItems,
onChanged: (value) {
setState(() {
_selectedCurrency = value;
});
},
);
}
CupertinoPicker iOSPicker() {
List<Text> pickerItems = [];
for (String currency in currenciesList) {
var newItem = Text(currency);
pickerItems.add(newItem);
}
return CupertinoPicker(
backgroundColor: Colors.lightBlue,
itemExtent: 32.0,
onSelectedItemChanged: (selectedIndex) {
setState(() {
_selectedCurrency = currenciesList[selectedIndex];
print(_selectedCurrency);
});
},
children: pickerItems);
}
@override
Widget build(BuildContext context) {
return Platform.isIOS ? iOSPicker() : androidDropDown();
}
}
以下来自 coin_dart 文件:
const 列出货币列表 = [ '澳元', 'BRL', 'CAD', '中国新年', '欧元', '英镑', '港币', '印尼盾', 'ILS', '印度卢比', '日元', 'MXN', “不”, '新西兰元', 'PLN', '罗恩', '擦', '瑞典克朗', '新元', '美元', 'ZAR' ];
常量列表cryptoList = [ '比特币', 'ETH', 'LTC', ];
【问题讨论】:
标签: flutter dart statefulwidget