نمایش نتایج 1 تا 16 از 16

نام تاپیک: تغیر مقدار Badge

  1. #1
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,016

    تغیر مقدار Badge

    با سلام
    یک پراپرتی در StatelessWidget در runApp ایجاد کردم به صورت static که مقدار سبد در ان بزارم.
    الان مشکلی که دارم مقدار Badge در دکمه های اضافه و کم تغیر میکند و مشکلی نیست فقط نمایش نمیده.
    setState(() { var TedadDarBag = Lunch.LoginModel.TedadDarBag.toString(); });

    چون دکمه ای که این Badge کم زیاد میکند در جایی که شی Badge است نیست و در یک StatelessWidget نیستند.

  2. #2
    کاربر دائمی آواتار hharddy
    تاریخ عضویت
    اسفند 1392
    محل زندگی
    تهران
    پست
    383

    نقل قول: تغیر مقدار Badge

    جایی که دارید TedadDarBag را نمایش میدهید احتمالا stateless است.

  3. #3
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,016

    نقل قول: تغیر مقدار Badge

    نقل قول نوشته شده توسط fakhravari مشاهده تاپیک
    با سلام
    یک پراپرتی در StatelessWidget در runApp ایجاد کردم به صورت static که مقدار سبد در ان بزارم.
    الان مشکلی که دارم مقدار Badge در دکمه های اضافه و کم تغیر میکند و مشکلی نیست فقط نمایش نمیده.
    setState(() { var TedadDarBag = Lunch.LoginModel.TedadDarBag.toString(); });

    چون دکمه ای که این Badge کم زیاد میکند در جایی که شی Badge است نیست و در یک StatelessWidget نیستند.
    با سلام
    app run در یک StatelessWidget و بقیه توی StatefulWidget
    اگر ممکن برسی کنید
    https://s16.picofile.com/file/841430...anbgs.rar.html

  4. #4
    کاربر دائمی آواتار hharddy
    تاریخ عضویت
    اسفند 1392
    محل زندگی
    تهران
    پست
    383

    نقل قول: تغیر مقدار Badge

    نقل قول نوشته شده توسط fakhravari مشاهده تاپیک
    با سلام
    app run در یک StatelessWidget و بقیه توی StatefulWidget
    اگر ممکن برسی کنید
    https://s16.picofile.com/file/841430...anbgs.rar.html
    لطفا کد همون ویجت هارو بفرستید تست کنم

  5. #5
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,016

    نقل قول: تغیر مقدار Badge

    لینک اپلود شده است
    عکس های ضمیمه عکس های ضمیمه

  6. #6
    کاربر دائمی آواتار hharddy
    تاریخ عضویت
    اسفند 1392
    محل زندگی
    تهران
    پست
    383

    نقل قول: تغیر مقدار Badge

    داخل پروژه دیگه قرار دادم اوکی هست آپدیت میشه مقدار badge




    void main() => runApp(MyApp()
    );
    class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
    return MaterialApp(
    debugShowCheckedModeBanner: false,


    home: Center(child: StartPage()),
    );
    }
    }




    class StartPage extends StatefulWidget {
    @override
    _StartPageState createState() => _StartPageState();
    }


    class _StartPageState extends State<StartPage> {


    int _TedadProduct = 0;

    void _RefreshBag() {
    setState(() {
    _TedadProduct++;
    });
    }




    Widget _shoppingCartBadge() {




    return Badge(
    position: BadgePosition.topEnd(top: 0, end: 3),
    animationDuration: Duration(milliseconds: 300),
    animationType: BadgeAnimationType.slide,
    badgeContent:
    Text(_TedadProduct.toString(), style: TextStyle(color: Colors.white)),
    child: IconButton(icon: Icon(Icons.shopping_cart), onPressed: () {
    _RefreshBag();
    }),
    );
    }
    @override
    Widget build(BuildContext context) {
    return Scaffold(


    body: Center(
    child: _shoppingCartBadge(),
    ),
    );
    }




    }



  7. #7
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,016

    نقل قول: تغیر مقدار Badge

    خب ببنید من مقدارBadge در یک پراپرتی استاتیک runApp در کلاس MyApp دارم
    مراحل پروژه توضیح بدم
    بعد از runApp به صفحه StartPage.dart میرود. که شی Badge در آن صفحه است.

    این صفحه جوری است که منو ها در drawer تعریف کردم و بعد از کلیک صفحه به body منتقل میشه .
    _getDrawerItemScreen(_selectedIndex))
    ایتم شروع 0 است و در واقع خانه است که لیست محصولات نمایش میده Index.dart
    که روی دکمه کم زیاد من پراپرتی Lunch.LoginModel.TedadDarBag کم زیاد میکنم و مقدار اون لاگ میکنم کم و زیاد میشه ولی Badge ابدیت نمیشود
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 111.jpg‏ (93.8 کیلوبایت, 14 دیدار)

  8. #8
    کاربر دائمی آواتار hharddy
    تاریخ عضویت
    اسفند 1392
    محل زندگی
    تهران
    پست
    383

    نقل قول: تغیر مقدار Badge

    نقل قول نوشته شده توسط fakhravari مشاهده تاپیک
    خب ببنید من مقدارBadge در یک پراپرتی استاتیک runApp در کلاس MyApp دارم
    مراحل پروژه توضیح بدم
    بعد از runApp به صفحه StartPage.dart میرود. که شی Badge در آن صفحه است.

    این صفحه جوری است که منو ها در drawer تعریف کردم و بعد از کلیک صفحه به body منتقل میشه .
    _getDrawerItemScreen(_selectedIndex))
    ایتم شروع 0 است و در واقع خانه است که لیست محصولات نمایش میده Index.dart
    که روی دکمه کم زیاد من پراپرتی Lunch.LoginModel.TedadDarBag کم زیاد میکنم و مقدار اون لاگ میکنم کم و زیاد میشه ولی Badge ابدیت نمیشود
    خب ببینید شما میخواید از داخل یک ویجت دیگه state یک ویجت دیگر و اپدیت کنید اینجاست که باید از پکیج های مدیریت state مثل بلاک استفاده کنید یا اگر نمیخواید بلاک استفاده کنید از استریم یا provider کمک بگیرید.

  9. #9
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,016

    نقل قول: تغیر مقدار Badge

    نقل قول نوشته شده توسط hharddy مشاهده تاپیک
    خب ببینید شما میخواید از داخل یک ویجت دیگه state یک ویجت دیگر و اپدیت کنید اینجاست که باید از پکیج های مدیریت state مثل بلاک استفاده کنید یا اگر نمیخواید بلاک استفاده کنید از استریم یا provider کمک بگیرید.
    ممنون خودتون کدوم پیش نهاد میکنید پکیج بهتر یا استفاده از کنترل هایی که گفتید.
    برای موارد اگر ممکن لینک کمکی مثال هایشان هم بزارید

  10. #10
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,016

    نقل قول: تغیر مقدار Badge

    چرا خطا میدهد
    ایا باید sdk نصب کرد؟
    عکس های ضمیمه عکس های ضمیمه

  11. #11
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,016

    نقل قول: تغیر مقدار Badge

    نقل قول نوشته شده توسط fakhravari مشاهده تاپیک
    چرا خطا میدهد
    ایا باید sdk نصب کرد؟
    provider: ^4.3.2+2

  12. #12
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,016

    نقل قول: تغیر مقدار Badge

    پراپرتی من از جنس کلاس و به صورت استاتیک چطوری در provider استفاده کنم؟

    import 'package:flutter/foundation.dart';import 'package:vatanbgs/main.dart';


    class ProviderLoad with ChangeNotifier {
    int _TedadDarBag = 0;
    int get TedadDarBag => Lunch.LoginModel.TedadDarBag;
    }




    روش بالا جواب نداد، مقدار رفرش نمیکند
    آخرین ویرایش به وسیله fakhravari : شنبه 01 آذر 1399 در 22:23 عصر

  13. #13
    کاربر دائمی آواتار hharddy
    تاریخ عضویت
    اسفند 1392
    محل زندگی
    تهران
    پست
    383

    نقل قول: تغیر مقدار Badge

    من از قابلیت های Rxdart استفاده کردم.
    اول از همه داخل کلاس Index متغیر زیر و تعریف کنید. به دلیل اینکه داخل این کلاس تعریف میکنیم این هست که از کلاس startpage به متغیر های استاتیک این کلاس دسترسی داشته باشیم و کلاس _IndexState چون از نوع private هست این امکان وجود نداره مگر اینکه پابلیک تعریف کنید.

    static BehaviorSubject<int> tedad_subject =  BehaviorSubject<int>();


    حالا داخل state ویجت این کلاس یعنی _IndexState جایی که روی علامت اضافه کردن کلیک میکردن کد زیر و بنویسید. قبل از اون هم داخل init من مقدار اولیه رو 3 گذاشتم برای تست.


    @override
    void initState() {
    super.initState();
    Index.tedad_subject.add(3);


    LoadPage();
    }

    /** **/

    onPressed: () {


    Lunch.LoginModel.TedadDarBag =
    Lunch.LoginModel.TedadDarBag + 1;
    Index.tedad_subject.add(Lunch.LoginModel.TedadDarB ag);
    print(
    Lunch.LoginModel.TedadDarBag.toString());


    setState(() {
    var t = Lunch.LoginModel.TedadDarBag;
    });
    }




    اینجا با کلیک کردن روی آیکون زمانی که مقدار متغیر TedadDarBag اپدیت میشه همونو به عنوان مقدار جدید استریم tedad_subject قرار میدیم.

    داخل کلاس startpage هم فقط کافی متد زیر و به این شکل اپدیت کنید.


    Widget _shoppingCartBadge(var context) {



    return StreamBuilder(
    stream: Index.tedad_subject,
    builder: (context,snapshot){
    return Badge(
    position: BadgePosition.topEnd(top: 0, end: 3),
    animationDuration: Duration(milliseconds: 300),
    animationType: BadgeAnimationType.slide,
    badgeContent:
    Text(snapshot.data.toString(), style: TextStyle(color: Colors.white)),
    child: IconButton(icon: Icon(Icons.shopping_cart), onPressed: () {}),
    );
    },
    );
    }


    داخل این ویجت از StreamBuilder استفاده شده که هر زمان مقدار جدیدی داخل استریم قرار گرفته ویجت دوباره ساخته بشه.
    اگر مشکلی بود بگید فایل دو کلاس و بفرستم.

    پکیج rxdart رو هم اضافه کنید.

  14. #14
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,016

    نقل قول: تغیر مقدار Badge

    درست شد. ممنون

  15. #15
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,016

    نقل قول: تغیر مقدار Badge

    چطوری میشه یک فانکشن صدا زد؟
      static var tedad_subject = BehaviorSubject<int>();
    static var refreshGride = BehaviorSubject<Future<void>>();

  16. #16
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,016

    نقل قول: تغیر مقدار Badge

    با listen حل شد

تاپیک های مشابه

  1. روش های تولید بج سینه یا همان نشان سینه تبلیغاتی (badge)
    نوشته شده توسط neshanehsaz در بخش بک لینک (Back Links)
    پاسخ: 0
    آخرین پست: یک شنبه 29 دی 1398, 11:27 صبح
  2. label ها و Badge ها در بوت استرپ
    نوشته شده توسط saeed410 در بخش طراحی وب (Web Design)
    پاسخ: 0
    آخرین پست: یک شنبه 14 دی 1393, 17:37 عصر
  3. پاسخ: 12
    آخرین پست: دوشنبه 28 اسفند 1391, 07:25 صبح
  4. سوال: تعریف متغیر (متغیری در ریجستری) در ویژوال بیسیک
    نوشته شده توسط R2du-soft در بخش برنامه نویسی در 6 VB
    پاسخ: 14
    آخرین پست: دوشنبه 26 تیر 1391, 21:11 عصر
  5. تغییر محتوای یک متغیر BaseCollection در هنگام تعریف متغیر دیگر!
    نوشته شده توسط hassan1365 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: سه شنبه 11 خرداد 1389, 10:29 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •