例如:
我创建了一个类One
,其中有一个类Two
在创建类时被接受One
:
class One {
final Two two;
One({ this.two });
}
在类中Two
我创建一个对象One
并将创建的类“Two”作为参数传递:
class Two {
One one = One(two: <здесь я хочу передать ссылку на текущий экземпляр "Two">);
}
例如:
我创建了一个类One
,其中有一个类Two
在创建类时被接受One
:
class One {
final Two two;
One({ this.two });
}
在类中Two
我创建一个对象One
并将创建的类“Two”作为参数传递:
class Two {
One one = One(two: <здесь я хочу передать ссылку на текущий экземпляр "Two">);
}
如何从另一个小写类调用方法?
比如有这样一个类:
class Zip{
List<ZipData> keys = [...];
String encrypt({String stringForEncrypt}) {
String string = stringForEncrypt;
keys.asMap().forEach((index, value) {
string = _zip(string: string, index: index);
});
return string;
}
String _zip({String string, int index}) {...}
}
我这样称呼这个方法:
String str = Zip().encrypt(stringForEncrypt: "lorem ipsum");
但我想在其他类中调用给定的方法,例如:
String str = zip.encrypt(stringForEncrypt:"lorem ipsum");
我该怎么做?
例如我有这样的数字String
:+77777777777
,我想输出这个数字+7 (777) 777 77 77
我收到以下格式的数据:
[
[
[
{
"a": "1",
"b": "2",
"c": "3"
},
{
"a": "1",
"b": "2",
"c": "3"
}
],
[
{
"a": "1",
"b": "2",
"c": "3"
},
{
"a": "1",
"b": "2",
"c": "3"
}
],
[
{
"a": "1",
"b": "2",
"c": "3"
},
{
"a": "1",
"b": "2",
"c": "3"
}
]
],
[
[
{
"a": "1",
"b": "2",
"c": "3"
},
{
"a": "1",
"b": "2",
"c": "3"
}
],
[
{
"a": "1",
"b": "2",
"c": "3"
},
{
"a": "1",
"b": "2",
"c": "3"
}
],
[
{
"a": "1",
"b": "2",
"c": "3"
},
{
"a": "1",
"b": "2",
"c": "3"
}
]
]
]
如何正确序列化此 json 以使性能不下降?
我使用了以下方法,但是当接收到大量数据时,性能急剧下降:
class MapData {
final String a;
final String b;
final String c;
MapData({this.a, this.b, this.c});
}
使用时initState
:
var allData = json.decode(widget.data);
var myData = List<List<List<MapData>>>();
for (int i = 0; i < allData.length; i++) {
myData.add([]);
for (int i0 = 0; i0 < allData[i].length; i0++) {
myData[i].add([]);
for (int i1 = 0; i1 < allData[i][i0].length; i1++) {
var record = MapData(
a: allData[i][i0][i1]['a'],
b: allData[i][i0][i1]['b'],
c: allData[i][i0][i1]['c'],);
myData[i][i0].add(record);
}
}
}
我正在使用这种 json 格式的所有数据,即List(вертикальный список)<List(горизонтальный список внутри вертикального списка)<List(еще один список внутри горизонтального списка)<Map<String,String>(отображаемые данные внитри списка)>>>
例如,有String money = 10000;
,我想给这个字符串添加一个掩码并将其输出为:10000,如果 1000 则 1000,如果 100000 则 100000,如果 1000000 则 1000000 等等。我尝试了库money_formatter
,但在那里插入了逗号,我需要空格
请帮我解决问题,当我尝试打开带有此类链接的图像时,它https://а-вкусно.рф/images/004/794/755/4794755/990xnoinc/%D0%90%D0%BF%D0%BF%D0%B5%D1%82%D0%B8%D1%82%D0%BD%D0%B0%D1%8F.jpg
会出错
FormatException: %D0%B0-%D0%B2%D0%BA%D1%83%D1%81%D0%BD%D0%BE.%D1%80%D1%84 is not a valid link-local address but contains %. Scope id should be used as part of link-local address. (at character 1)
CachedNetworkImage(
imageUrl: "https://а-вкусно.рф/images/004/794/755/4794755/990xnoinc/%D0%90%D0%BF%D0%BF%D0%B5%D1%82%D0%B8%D1%82%D0%BD%D0%B0%D1%8F.jpg",
imageBuilder: (context, imageProvider) => Container(
decoration: BoxDecoration(
image: DecorationImage(
image: imageProvider,
fit: BoxFit.cover,
colorFilter:
ColorFilter.mode(Colors.red, BlendMode.colorBurn)),
),
),
placeholder: (context, url) => CircularProgressIndicator(),
errorWidget: (context, url, error) => Icon(Icons.error),
)
例如有这一行:
String str = "45.2, 50.2";
它需要转换为列表;
应得:
List<double> dbl = [45.2, 50.2];
我想将值传递List<Map<String,String>>
给ListView.builder()
并在屏幕上显示并在每个单元格中添加两个按钮,在此单元格之后添加一个单元格并删除此单元格,问题是实际上它们被正确添加和删除,但添加的单元格是显示为最后一个单元格,因为它可以修复?
ps:我在按下按钮的时候试过了,Navigator.pushReplacement()...
但不是这样,在这种情况下页面位置丢失了
这是我的代码:
import 'dart:convert';
import 'package:flutter/material.dart';
import 'data/data.dart';
_AddPageState state = _AddPageState();
class AddPage extends StatefulWidget {
@override
_AddPageState createState() => _AddPageState();
}
class _AddPageState extends State<AddPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Ән қосу'),
centerTitle: true,
actions: <Widget>[
IconButton(
icon: Icon(
Icons.save,
size: 30.0,
),
onPressed: () {},
)
],
),
body: ListView.builder(
itemCount: data.length,
itemBuilder: (context, index) {
return ListTile(
title: Column(
children: <Widget>[
TextFormField(
initialValue: data[index]['data'],
),
TextFormField(
initialValue: data[index]['text']
)
],
),
subtitle: Row(
children: <Widget>[
Expanded(
flex: 50,
child: IconButton(
icon: Icon(Icons.add),
onPressed: () {
setState(() {
addBeforeIndex(data, index);
print(json.encode(data));
});
},
),
),
Expanded(
flex: 50,
child: IconButton(
icon: Icon(Icons.remove),
onPressed: () {
setState(() {
setState(() {
removeIndex(index);
print(json.encode(data));
});
});
},
),
)
],
));
},
),
);
}
}
这是来自的代码data.dart
:
List<Map<String, String>> data = [
{"data": "data1", "text": "text1"},
{"data": "data2", "text": "text2"},
{"data": "data3", "text": "text3"}
];
Map<String, String> inData = {"data": "", "text": ""};
void add(List data) {
Map<String, String> v = inData;
data.add(v);
}
void addBeforeIndex(List data, int index) {
Map<String, String> v = inData;
data.insert(index+1, v);
}
void removeIndex(int index) {
data.removeAt(index);
}
我想编码,可能不可能,我也想过,但我还是会问是否可以String
用json编码:
String str = '[{namingLine:sdasdasd,textLine:asdasdasd},{namingLine:adasd,textLine:asdasd}]';
最终会是这样的:
[{"namingLine":"sdasdasd","textLine":"asdasdasd"},{"namingLine":"adasd","textLine":"asdasd"}]
事实是我想在 phpmyadmin 中添加一行,如有必要,从那里获取这一行并将其显示为 json 文件
错误是当我从中间或第一个开始删除表单时,据我了解,首先单击的表单没有被删除,我应该正确写什么?
这是我的代码:
import 'package:flutter/material.dart';
import 'data.dart';
class FormData extends StatefulWidget {
@override
_FormDataState createState() => _FormDataState();
}
class _FormDataState extends State<FormData> {
List<Data> _data = [];
List<Widget> _children = [];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('AddPage'),
actions: <Widget>[
IconButton(
icon: Icon(Icons.save),
onPressed: () {},
)
],
),
body: SingleChildScrollView(
child: Center(
child: Column(
children: <Widget>[
Container(
child: _children.length <= 0
? Text(
'tap [+] button for add',
style: TextStyle(color: Colors.yellow, fontSize: 18.0),
)
: Column(
children: _children,
),
),
Container(
child: RaisedButton(
child: Icon(Icons.add),
onPressed: () => onAddForm(_data.length),
),
)
],
),
),
),
);
}
void onAddForm(int keyValue) {
setState(() {
_data.add(Data());
});
_children = List.from(_children)
..add(Card(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Expanded(
flex: 85,
child: Column(
children: <Widget>[
TextField(
style: TextStyle(color: Colors.lime[600]),
onChanged: (val) {
onChangedName(keyValue, val);
},
decoration: InputDecoration(
hintText: 'name',
hintStyle: TextStyle(color: Colors.lime[900])),
),
TextField(
keyboardType: TextInputType.number,
onChanged: (val) {
onChangedNumber(keyValue, val);
},
decoration: InputDecoration(
hintText: 'phoneNumber',
hintStyle: TextStyle(color: Colors.grey)
),
)
],
),
),
Expanded(
flex: 15,
child: FlatButton(
child: Stack(
children: <Widget>[
Icon(Icons.delete, size: 28,),
Positioned(
top: -20,
right: -15,
child: CircleAvatar(
radius: 12,
backgroundColor: Colors.red,
child: Text(
'$keyValue',
style: TextStyle(color: Colors.white),
),
),
)
],
overflow: Overflow.visible,
),
onPressed: ()=>onDelete(keyValue),
),
)
],
),
));
}
void onDelete(int index) {
setState(() {
_data.removeAt(index);
_children.removeAt(index);
});
print(_data);
}
onChangedName(int index, String record) {
setState(() {
_data[index].phoneNumber = record;
});
}
onChangedNumber(int index, String record) {
setState(() {
_data[index].phoneNumber = record;
});
}
}
我有一个这样的列表:
List<Map<String, String>> country = [
{
"id": "1",
"cuisine":
"china",
"img_url":
"https://cdn.pixabay.com/photo/2017/09/11/14/11/fisherman-2739115_960_720.jpg"
},
{
"id": "2",
"cuisine":
"turkey",
"img_url":
"https://cdn.pixabay.com/photo/2016/10/27/05/48/cappadocia-1773468_960_720.jpg"
}
];
如何将值img_url
从列表传递到image.network()
?
W/flutter ( 2864): onAdFailedToLoad: 0
I/Ads ( 2864): Ad failed to load : 0
I/flutter ( 2864): BannerAd event is MobileAdEvent.failedToLoad
可能是什么问题呢?
import 'package:flutter/material.dart';
import 'package:firebase_admob/firebase_admob.dart';
const String testDevice = 'Mobile_id';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
MobileAdTargetingInfo targetingInfo;
BannerAd myBanner;
@override
void initState() {
super.initState();
targetingInfo = MobileAdTargetingInfo(
keywords: <String>['flutterio', 'beautiful apps'],
contentUrl: 'https://flutter.io',
birthday: DateTime.now(),
childDirected: false,
designedForFamilies: false,
gender: MobileAdGender
.male, // or MobileAdGender.female, MobileAdGender.unknown
testDevices: <String>[], // Android emulators are considered test devices
);
myBanner = BannerAd(
// Replace the testAdUnitId with an ad unit id from the AdMob dash.
// https://developers.google.com/admob/android/test-ads
// https://developers.google.com/admob/ios/test-ads
adUnitId: BannerAd.testAdUnitId,
size: AdSize.smartBanner,
targetingInfo: targetingInfo,
listener: (MobileAdEvent event) {
print("BannerAd event is $event");
},
);
}
void _show_banner() {
myBanner
..load()
..show(
anchorOffset: 0.0,
anchorType: AnchorType.bottom,
);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Title',
theme: ThemeData(),
home: Scaffold(
appBar: AppBar(
title: Text('data'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
RaisedButton(
onPressed: () => _show_banner(),
child: Text('Show Banner Ad'),
)
],
),
),
),
);
}
}
AndroidManifest.xml
在之后还添加了一个标签
<application>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>
</application>
如何从 mysql 中的句子中找到确切的单词,例如,在表中有一个类别“音乐”、“电影”所在的列,并且在搜索中用户不会输入一个单词,但是让我们说,一大句“购物音乐世界电影旅游新闻”,作为回应他会得到“音乐”和“电影”栏目?