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

تغير اسم button في flutter stepper

Flutter Dev

السؤال

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

الكود شغال ماشي مشكله ولكن احتاج الى تغير اسم 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...