وليد الجمل نشر 12 مايو 2022 أرسل تقرير نشر 12 مايو 2022 لدي صف حالة لعمل تسجيل دخول للمستخدم يتصل بالسيرفر لكن لدي مشكلة أن الزر غير مفعل و غير قابل للنقر كنت قد حددت دالة للتحقق checkInput وأسندتها للخاصية onPress import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:http/http.dart' as http; import 'main.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:sy_traffic_mangement/homepage.dart'; class LoginPage extends StatefulWidget { @override _LoginPageState createState() => _LoginPageState(); } class _LoginPageState extends State<LoginPage> { final TextEditingController emailController = new TextEditingController(); final TextEditingController passwordController = new TextEditingController(); bool _isLoading = false; @override Widget build(BuildContext context) { SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light .copyWith(statusBarColor: Colors.transparent)); return Scaffold( body: Container( decoration: BoxDecoration( gradient: LinearGradient( colors: [Colors.blue, Colors.teal], begin: Alignment.topCenter, end: Alignment.bottomCenter), ), child: _isLoading ? Center(child: CircularProgressIndicator()) : ListView( children: <Widget>[ headerSection(), textSection(), buttonSection(), ], ), ), ); } signIn(String email, String pass) async { SharedPreferences sharedPreferences = await SharedPreferences.getInstance(); Map data = {'email': email, 'password': pass}; var jsonResponse = null; var response = await http.post(Uri.parse('http://syy.pythonanywhere.com/login/'), body: data); if (response.statusCode == 200) { jsonResponse = json.decode(response.body); if (jsonResponse != null) { setState(() { _isLoading = false; }); sharedPreferences.setString("token", jsonResponse['token']); Navigator.of(context).push( MaterialPageRoute(builder: (BuildContext context) => Home() ),); } } else { setState(() { _isLoading = false; }); print('request error'); print(response.body); } } Container buttonSection() { return Container( width: MediaQuery.of(context).size.width, height: 40.0, padding: EdgeInsets.symmetric(horizontal: 15.0), margin: EdgeInsets.only(top: 15.0), child: RaisedButton( onPressed: checkInput(), elevation: 0.0, color: Colors.purple, child: Text("Sign In", style: TextStyle(color: Colors.white70)), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5.0)), ), ); } checkInput() { print(emailController.text + ' ' + passwordController.text ); if (emailController.text == "" || passwordController.text == "") return null; setState(() { _isLoading = true; }); signIn(emailController.text, passwordController.text); } 1 اقتباس
0 Wael Aljamal نشر 12 مايو 2022 أرسل تقرير نشر 12 مايو 2022 عند تحميل التطبيق سيتم تنفيذ دالة checkInput لأول مرة و إسناد قيمتها للدالة onpress كتابع. وأنت تريد تطبيق دالة التحقق بعد النقر، لذلك نجعل الزر يستدعي دالة وهي بدورها تستدعي دالة التحقق ليصبح: onPressed: () { checkInput(); }, حاول مجدداً يتوجب أن يعمل الزر 1 اقتباس
السؤال
وليد الجمل
لدي صف حالة لعمل تسجيل دخول للمستخدم يتصل بالسيرفر
لكن لدي مشكلة أن الزر غير مفعل و غير قابل للنقر
كنت قد حددت دالة للتحقق checkInput وأسندتها للخاصية onPress
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.