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

السؤال

نشر

قمت بستعمال كود للقيام بعمليات ممتابعه بحيث اني اطلب من المستخدم انجاز مهمة قبل الانتقال الى المهمة التاليه

الكود شغال ماشي مشكله ولكن احتاج الى تغير اسم button 

بمعنى الان املك زر باسم Continue

ارغب بتغيره على سبيل المثال الى GO  او اي كلمة ثانية مختلفه ولكني لم اجد طريقة للقيام بذلك

صورة لتوضيح المشكله :

607b3cc21d3bc_Screenshot2021-04-17235320.thumb.png.71b10c7239c785cecf83a4d7a8e29a80.png

وهذا الكود المستعمل كامل:

import 'package:fa_stepper/fa_stepper.dart';
import 'package:flutter/material.dart';
import 'first.dart';
import 'second.dart';
import 'third.dart';

void main() {
  runApp(MaterialApp(
      // Title
      title: "Simple Material App",
      // Home
      home: StepperEx()));
}


class StepperEx extends StatefulWidget {
  @override
  _StepperExState createState() => _StepperExState();
}

class _StepperExState extends State<StepperEx> {
  int _currentStep = 0;
  StepperType stepperType = StepperType.vertical;

  switchStepType() {
    setState(() => stepperType == StepperType.vertical
        ? stepperType = StepperType.horizontal
        : stepperType = StepperType.vertical);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomPadding: false,
      appBar: AppBar(
        title: Text('Stepper Example'),
      ),
      body:

      Column(
        children: <Widget>[
          Expanded(
            child: Stepper(
              //physics: ClampingScrollPhysics(),
              steps: _stepper(),
              type: stepperType,
              currentStep: this._currentStep,
              onStepTapped: (step) {
                setState(() {
                  this._currentStep = step;
                });
              },
              onStepContinue: () {
                setState(() {
                  if (this._currentStep < this._stepper().length - 1) {
                    this._currentStep = this._currentStep + 1;
                  } else {
                    //Logic
                    print('complete');
                  }
                });
              },
              onStepCancel: () {
                setState(() {
                  if (this._currentStep > 0) {
                    this._currentStep = this._currentStep - 1;
                  } else {
                    this._currentStep = 0;
                  }
                });
              },
            ),
          ),
        ],
      ),

    );
  }

  List<Step> _stepper() {
    List<Step> _steps = [
      Step(
          title: Text('Name'),
          content: Column(
            children: <Widget>[






            ],
          ),
          isActive: _currentStep >= 0,
          state: StepState.complete),
      Step(
          title: Text('Email'),
          content: Column(
            children: <Widget>[





            ],
          ),
          isActive: _currentStep >= 1,
          state: StepState.disabled),

    ];
    return _steps;
  }
}

 

Recommended Posts

  • 1
نشر

يمكن ذلك من خلال الدالتين:

  • onStepContinue 
  • onStepCancel

نحتاج لتعريف controlsBuilder callback والذي يأخذ بدوره الدالتين السابقتين و من ثم يمكننا تغيير الاسم:

هذا مثال عن  stepper:

Stepper(
      controlsBuilder: (BuildContext context,
          {VoidCallback onStepContinue, VoidCallback onStepCancel}) {
        return Row(
          children: <Widget>[
            TextButton(
              onPressed: onStepContinue,
              child: const Text('NEXT'),
            ),
            TextButton(
              onPressed: onStepCancel,
              child: const Text('EXIT'),
            ),
          ],
        );
      },
      steps: const <Step>[
        Step(
          title: Text('A'),
          content: SizedBox(
            width: 100.0,
            height: 100.0,
          ),
        ),
        Step(
          title: Text('B'),
          content: SizedBox(
            width: 100.0,
            height: 100.0,
          ),
        ),
      ],
    );

 

  • 1
نشر

يمكنك تغيير label النص من خلال Widget Text بهذا الشكل 

Text('NEXT')
Text('CANCEL'),

يمكنك وضع زرين بهذا الشكل 

TextButton(
  onPressed: onStepContinue,
  child: const Text('NEXT'),
),
TextButton(
  onPressed: onStepCancel,
  child: const Text('CANCEL'),
),

بحيث child تأخذ Widget النص و onPressed تأخذ قيمة الدالة أو الأنتقال. بحيث الدالتين 

onStepContinue
onStepCancel

تستخدمان في التحكم في Stepper.

  • 0
نشر
بتاريخ 14 ساعات قال Wael Aljamal:

يمكن ذلك من خلال الدالتين:

  • onStepContinue 
  • onStepCancel

نحتاج لتعريف controlsBuilder callback والذي يأخذ بدوره الدالتين السابقتين و من ثم يمكننا تغيير الاسم:

هذا مثال عن  stepper:


Stepper(
      controlsBuilder: (BuildContext context,
          {VoidCallback onStepContinue, VoidCallback onStepCancel}) {
        return Row(
          children: <Widget>[
            TextButton(
              onPressed: onStepContinue,
              child: const Text('NEXT'),
            ),
            TextButton(
              onPressed: onStepCancel,
              child: const Text('EXIT'),
            ),
          ],
        );
      },
      steps: const <Step>[
        Step(
          title: Text('A'),
          content: SizedBox(
            width: 100.0,
            height: 100.0,
          ),
        ),
        Step(
          title: Text('B'),
          content: SizedBox(
            width: 100.0,
            height: 100.0,
          ),
        ),
      ],
    );

 

كل الشكر اخي لقد نجح الامر 

بتاريخ 11 ساعات قال بلال زيادة:

يمكنك تغيير label النص من خلال Widget Text بهذا الشكل 


Text('NEXT')

Text('CANCEL'),

يمكنك وضع زرين بهذا الشكل 


TextButton(
  onPressed: onStepContinue,
  child: const Text('NEXT'),
),
TextButton(
  onPressed: onStepCancel,
  child: const Text('CANCEL'),
),

بحيث child تأخذ Widget النص و onPressed تأخذ قيمة الدالة أو الأنتقال. بحيث الدالتين 


onStepContinue
onStepCancel

تستخدمان في التحكم في Stepper.

كل الشكر الغالي لقد نجح الامر 

جزاك الله الف خير يا رب

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...