اذهب إلى المحتوى
  • 0

ارغب برفض الضغط على الزر اكثر من مرة في Flutter

جوزيف ناثان

السؤال

ارغب برفض الزر الضغط عليه اكثر من مرة في Flutter  لضمان عدم تنفيز الأمر أكثر من مرة .

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يمكنك ان تقوم بعمل حالة مثل isButtonDisabled و عند الضغط عليه لأول مره عمل هذه الحالة false و عمل تحقق من هذه الحالة فإن كانت true سيقوم بالضغط عليه و إن كانت false لن يكون هناك اي onPress مما يعني انو الكبسة ستكون غير فعالة لعدم وجود دالة تقوم بعمل يشئ لهذه الكبسة كالتالي :

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  // هنا تقوم بتعريف الحالة  
  bool _isButtonDisabled= True;

 //هنا بتعريق الدالة التي ستفوم بعمل الزيادة 

  void _incrementCounter() {
    setState(() {
      _isButtonDisabled = true;
      _counter++;
    });
  }
  
  .........................
  
  Widget _buildCounterButton() {
  // هنا نقوم بتفقد الحالة 
  //  ان كانت True سنقوم بارجاع الدالة  Increment  لل  onPeress
  //  ان كانت  False سنفوم بارجاع  null
  // اعطاء فيمة نل للحدث يعني ان هذه الكبسة غير قابلة للكبس
    return new RaisedButton(
      child: new Text(
        _isButtonDisabled ? "Hold on..." : "Increment"
      ),
      onPressed:  _isButtonDisabled ? _incrementCounter():null,
    );
  }

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكننا تغيير حالة الزر ل disabled أي نقوم بإلغاء تفعيله كالتالي:

تعويض قيمة null للدالة onPressed

onPressed : null
RaisedButton(
  child: Text("PRESS BUTTON"),
  onPressed: booleanCondition
    ? () => myTapCallback()
    : null
)


// booleanCondition  متغير

أو باستخدام متغير،  في دالة onPressed نغيير حالة الزر:

class _MyHomePageState extends State<MyHomePage> {
  bool _isButtonDisabled;

  @override
  void initState() {
    _isButtonDisabled = false;
  }

  void _incrementCounter() {
    setState(() {
      _isButtonDisabled = true;
      _counter++;
    });
  }

وفي شيفرة الزر نحدد الدالة التي ستنفذ بناءاً على حالة المتغير:

Widget _buildCounterButton() {
    return new RaisedButton(
      child: new Text(
        _isButtonDisabled ? "Hold on..." : "Increment"
      ),
      onPressed: _isButtonDisabled ? null : _incrementCounter,
    );
  }

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...