我正在尝试在 flutter 应用程序中使用ShowoCaseView包,以下是我所做的步骤:
GlobalKey _oneShowcaseKey = GlobalKey();
startShowCase() {
WidgetsBinding.instance.addPostFrameCallback((_) async {
ShowCaseWidget.of(context).startShowCase([_oneShowcaseKey]);
});
}
@override
void initState() {
startShowCase();
super.initState();
}
@override
Widget build(BuildContext context) {
super.build(context);
return ShowCaseWidget(
builder: Builder(
builder: (context) => Scaffold(
child: Showcase(
key: _oneShowcaseKey,
title: 'Menu',
description: 'Click here to see menu options',
child: Column())
)
Run Code Online (Sandbox Code Playgroud)
这是我在应用程序中实现包的方式,但出现此错误:
[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Exception: Please provide ShowCaseView context
Run Code Online (Sandbox Code Playgroud) 我在 Django 中创建了一个自定义用户模型,一切正常,但是当我尝试创建一个新用户时,它给了我一个错误。
这是我的文件:
models.py,我在其中创建了用户表:
class UserModelManager(BaseUserManager):
def create_user(self, email, password, pseudo):
user = self.model()
user.name = name
user.email = self.normalize_email(email=email)
user.set_password(password)
user.save()
return user
def create_superuser(self, email, password):
'''
Used for: python manage.py createsuperuser
'''
user = self.model()
user.name = 'admin-yeah'
user.email = self.normalize_email(email=email)
user.set_password(password)
user.is_staff = True
user.is_superuser = True
user.save()
return user
class UserModel(AbstractBaseUser, PermissionsMixin):
## Personnal fields.
email = models.EmailField(max_length=254, unique=True)
name = models.CharField(max_length=16)
## [...]
## Django manage fields.
date_joined = models.DateTimeField(auto_now_add=True)
is_active = …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的 flutter 应用程序中实现 Firebase 电话身份验证,我使用了软件包:Firebase_core和Firebase_auth,这是我使用的代码:
FirebaseAuth _auth = FirebaseAuth.instance;
_auth.verifyPhoneNumber(
phoneNumber: '+2$mobile',
timeout: Duration(seconds: 60),
verificationCompleted: (AuthCredential authCredential){
var _credential = PhoneAuthProvider.credential(verificationId: actualCode, smsCode: smsCodeController.text);
_auth.signInWithCredential(_credential).then((UserCredential result) async {
pr.hide();
setState(() {
status = 'Authentication successful';
});
//The rest of my success code
}).catchError((e){
print(e);
Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(
builder: (context) => Welcome()),
(Route<dynamic> route) => false);
};
},
verificationFailed: (FirebaseAuthException authException){
print(authException.message);
},
codeSent: (String verificationId, [int forceResendingToken]){
setState(() {
actualCode = verificationId;
status = 'Code sent'; …
Run Code Online (Sandbox Code Playgroud) 我创建了一个自定义 UserModel 并使用电子邮件作为主要的身份验证 ID 而不是用户名。
它区分大小写的问题,因为它将 test@gmail.com,Test@gmail.com 计为 2 个不同的帐户。
我需要强制它处理 1 个帐户,而忽略它是大写还是小写。
这是我的文件:
模型.py
class UserModelManager(BaseUserManager):
def create_user(self, email, password, pseudo):
user = self.model()
user.name = name
user.email = self.normalize_email(email=email)
user.set_password(password)
user.save()
return user
def create_superuser(self, email, password):
'''
Used for: python manage.py createsuperuser
'''
user = self.model()
user.name = 'admin-yeah'
user.email = self.normalize_email(email=email)
user.set_password(password)
user.is_staff = True
user.is_superuser = True
user.save()
return user
class UserModel(AbstractBaseUser, PermissionsMixin):
## Personnal fields.
email = models.EmailField(max_length=254, unique=True)
name = models.CharField(max_length=16)
## [...] …
Run Code Online (Sandbox Code Playgroud) 我在 kotlin 中有一个数组列表,我想从中删除所有项目,将其保留为空数组以开始添加新的动态数据。我试过了,ArrayList.remove(index)
arrayList.drop(index)
但没有效果,
宣言:
var fromAutoCompleteArray: List<String> = ArrayList()
Run Code Online (Sandbox Code Playgroud)
这是我尝试的方法:
for (item in fromAutoCompleteArray){
fromAutoCompleteArray.remove(0)
}
Run Code Online (Sandbox Code Playgroud)
我正在使用addTextChangedListener
删除旧数据并根据用户输入添加新数据:
private fun settingToAutoComplete() {
val toAutoCompleteTextView: AutoCompleteTextView =
findViewById<AutoCompleteTextView>(R.id.toAutoCompleteText)
toAutoCompleteTextView.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun afterTextChanged(s: Editable?) {
doLocationSearch(toAutoCompleteTextView.text.toString(), 2)
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
toAutoCompleteTextView.postDelayed({
toAutoCompleteTextView.showDropDown()
}, 10)
}
})
val adapter = ArrayAdapter(this, android.R.layout.select_dialog_item, toAutoCompleteArray)
toAutoCompleteTextView.setAdapter(adapter)
toAutoCompleteTextView.postDelayed({ …
Run Code Online (Sandbox Code Playgroud) final doc = pw.Document();
var data = await rootBundle.load("assets/fonts/arial.ttf");
var myFont = Font.ttf(data);
String test = '???????? ??? ?? ?????????';
var data2 = utf8.encode(test);
doc.addPage(
pw.Page(
build: (pw.Context context) => pw.Center(
child: pw.Text(test, style: pw.TextStyle(fontSize: 80,font: myFont)),
),
),
);
Run Code Online (Sandbox Code Playgroud)
这是它的生成方式:
虽然预期的实际结果不应以字符分隔,但以下是我应该看到的示例:
DateFormat
当我使用以下语言环境时,\'ar\'
我可以在 flutter 中使用RTL
语言环境。这是我的代码:
String finalDatetime = \'$dateString $timeString\';\nDateTime tempDate = new DateFormat("yyyy-MM-dd hh:mm").parse(finalDatetime);\nString formattedDate = Intl.getCurrentLocale() == \'en\' ? DateFormat(\'dd-MM-yyyy \xe2\x80\x93 hh:mm\').format(tempDate)\n:DateFormat.yMMMd(\'ar\').format(tempDate);\n
Run Code Online (Sandbox Code Playgroud)\n我在这一行收到错误:
\nDateTime tempDate = new DateFormat("yyyy-MM-dd hh:mm").parse(finalDatetime);\n
Run Code Online (Sandbox Code Playgroud)\n错误
\nFormatException: Trying to read yyyy from 2020-08-07 15:00 at position 0\n
Run Code Online (Sandbox Code Playgroud)\n笔记
\n\'en\'
2020-08-07 15:00
在使用 pk 过滤对象后,我试图对一个完整的字段求和。
视图.py
def items(request, pk):
current_user = request.user
selected_itemz = get_object_or_404(ItemIn, pk=pk)
all_cats = Category.objects.all()
cat_count = all_cats.count()
item_count = ItemIn.objects.values_list('item_name', flat=True).distinct().count() # returns a list of tuples..
#all_units = Item.objects.aggregate(Sum('item_quantity'))['item_quantity__sum']
ItemOut_table = ItemOut.objects.all().filter(item_name=selected_itemz)
ItemOut_quantity = ItemOut_table.aggregate(Sum('item_quantity'))['item_quantity__sum']
context = {
#'all_units': all_units,
'item_count': item_count,
'cat_count': cat_count,
'current_user': current_user,
'ItemOut_quantity': ItemOut_quantity,
'selected_itemz':selected_itemz,
}
return render(request, 'townoftech_warehouse/item_details.html', context)
Run Code Online (Sandbox Code Playgroud)
然后我使用了我subtract
在 HTML 中创建的额外过滤器
HTML
<br>
<br>
<p align="right">
?????? ????????:
{{ selected_itemz.item_quantity|subtract:ItemOut_quantity }}
</p>
<br>
<br>
Run Code Online (Sandbox Code Playgroud)
这是tempaltetags
文件
from …
Run Code Online (Sandbox Code Playgroud) 只有当第一个命令失败时,我才需要在 Windows cmd 上运行第二个命令,在另一个场景中,我想在检查是否安装后打开 python 安装程序。
我用过这个命令
python --version || path/to/python_install.exe
据我所知 || 表示如果最后一个命令失败则运行。但它只运行第一个。
我在我的initState
函数中运行 2 个计时器,代码如下:
@override
void initState() {
readingSavedData();
_timeString = _formatDateTime(DateTime.now());
Timer.periodic(Duration(seconds: 1), (Timer t) => _getTime());
Timer.periodic(Duration(seconds: 3), (Timer t) => gettingLocation());
super.initState();
Run Code Online (Sandbox Code Playgroud)
因为此函数在显示计时器的文本小部件上每 1 秒_getTime()
运行一次。setState()
当我使用 .. 离开页面时它永远不会停止的问题是Navigator
它继续运行并在控制台中弹出此错误:
Unhandled Exception: setState() called after dispose()
Run Code Online (Sandbox Code Playgroud)
因为它无法调用setSatate(){}
不再可见的小部件。如何避免这种情况。