ElevatedButton

در فلاتر با استفاده از این ویجت می‌توانید دکمه تعریف کنید.

به طور مثال در صفحه لاگین نیاز به یک دکمه دارید تا کاربر را در صورت فشار دادن این دکمه به صفحه خانه منتقل کند.

با استفاده از ویجت ElevatedButton می‌توانید این کار را به راحتی انجام دهید.

در ادامه Property های این ویجت را به همراه نمونه کد مورد بررسی قرار می‌دهیم.

required child (Widget)

این Property میتواند هر ویجتی باشد که در داخل ElevateButton قرار می‌گیرد

ElevatedButton(
        child: const Text('LogIn'),
        
      ),

 

required onPressed (VoidCallBack)

این Property مربوط به عملکرد ElevatedButton می‌باشد در واقع این که چه اتفاقی هنگام کلیک شدن رو دکمه صورت گیرد در این قسمت تعریف می‌شود.

onPressed: () => Navigator.of(context)
            .push(MaterialPageRoute(builder: (context) => const HomeCreen())),

 

style (ButtonStyle)

این property که مقدار ورودی ButtonStyle می‌گیرد مربوط به تنظیمات ظاهری دکمه شما می‌باشد.

همچنین شما می‌توانید برای استایل دهی به دکمه این property را با ElevatedButton.styleFrom مقدار دهی کنید.

 

ElevatedButton.styleFrom(
                    backgroundColor: Colors.black,
                    elevation: 0,
                    shape: BeveledRectangleBorder(
                      borderRadius: BorderRadius.circular(12)
                    ),
                  ),

 

 

textStyle (TextStyle)

برای تغییر ظاهر متن درون دکمه می‌توانید ار دو روش استفاده کنید.

روش اول به صورت مستقیم به ویجت Text درون child استایل بدهید.

روش دوم درون Property استایل یک property به نام textStyle تعریف شده که می‌توانید در این قسمت ویژگی های مربوط به Text را تغییر دهید.

در مقاله Text انواع property های مربوط به textStyle معرفی شده که می‌توانید آنها را بررسی کنید.

ElevatedButton(
                  onPressed: (){
                  },
                  style: ElevatedButton.styleFrom(
                    backgroundColor: Colors.black,
                    elevation: 0,
                    textStyle: TextStyle(
                      fontSize: 20,
                      fontWeight: FontWeight.w800,
                      letterSpacing: 1.5
                    ),
                    shape: BeveledRectangleBorder(
                      borderRadius: BorderRadius.circular(12)
                    ),
                  ),
                  child: Text('LogIn'),
                ),

 

onLongPrees (voidCallBack)

در این property می‌توانید مشخص کنید که دکمه شما در هنگامی که دکمه به صورت طولانی کلیک شد چه واکنشی نشان داده شود.

 

 

در ادامه نمونه کد کامل از نحوه تعریف و کار کردن این ویجت قرار داده ایم که می‌توانید از آن استفاده کنید.

 

import 'package:flutter/material.dart';

void main() {
  runApp(Base());
}

class Base extends StatefulWidget {
  Base({Key? key}) : super(key: key);

  @override
  State<Base> createState() => _BaseState();
}

class _BaseState extends State<Base> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        debugShowCheckedModeBanner: false,
        home: Scaffold(
            appBar: AppBar(
              centerTitle: true,
              title: const Text('MyFlutter.ir'),
            ),
            body: const LoginScreen()));
  }
}

class LoginScreen extends StatelessWidget {
  const LoginScreen({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Center(
        child: ElevatedButton(
          
          child: Text('Login'),
          style: ElevatedButton.styleFrom(
            backgroundColor: Colors.black,
            textStyle: const TextStyle(
                fontSize: 20, fontWeight: FontWeight.w800,letterSpacing: 1.5),
            shape: BeveledRectangleBorder(
                borderRadius: BorderRadius.all(Radius.circular(10))),
            shadowColor: Colors.lightBlue,
          ),
          onPressed: () => Navigator.of(context)
              .push(MaterialPageRoute(builder: (context) => const HomeScreen())),
        ),
      ),
    );
  }
}

class HomeScreen extends StatefulWidget {
  const HomeScreen({Key? key}) : super(key: key);

  @override
  State<HomeScreen> createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {

  @override
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        centerTitle: true,
        title: const Text('MyFlutter.ir'),
      ),
      body: Center(child: Text('Home Screen')),
    );
  }
}
import 'package:flutter/material.dart';

void main() {
  runApp(Base());
}

class Base extends StatefulWidget {
  Base({Key? key}) : super(key: key);

  @override
  State<Base> createState() => _BaseState();
}

class _BaseState extends State<Base> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        debugShowCheckedModeBanner: false,
        home: Scaffold(
            appBar: AppBar(
              centerTitle: true,
              title: const Text('MyFlutter.ir'),
            ),
            body: const LoginScreen()));
  }
}

class LoginScreen extends StatelessWidget {
  const LoginScreen({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Center(
        child: ElevatedButton(
          
          child: Text('Login'),
          style: ElevatedButton.styleFrom(
            backgroundColor: Colors.black,
            textStyle: const TextStyle(
                fontSize: 20, fontWeight: FontWeight.w800,letterSpacing: 1.5),
            shape: BeveledRectangleBorder(
                borderRadius: BorderRadius.all(Radius.circular(10))),
            shadowColor: Colors.lightBlue,
          ),
          onPressed: () => Navigator.of(context)
              .push(MaterialPageRoute(builder: (context) => const HomeScreen())),
        ),
      ),
    );
  }
}

class HomeScreen extends StatefulWidget {
  const HomeScreen({Key? key}) : super(key: key);

  @override
  State<HomeScreen> createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {

  @override
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        centerTitle: true,
        title: const Text('MyFlutter.ir'),
      ),
      body: Center(child: Text('Home Screen')),
    );
  }
}

جمع بندی

ویجت ElevatedButton ویجتی است که برای تعریف کردن دکمه به کار می‌رود.

مقالات اخیر

نصب پلاگین فلاتر

بسیار عالی! حالا که با آموزش نصب فلاتر در سیستم عامل‌های مختلف، جلو آمدیم و فلاتر را نصب کردیم، لازم است که فلاتر را روی IDE خودمان هم نصب کنیم.

بیشتر بخوانید

پکیج تقویم شمسی persian_datetime_picker

یکی از مشکلات برنامه نویس‌های ایرانی، تاریخ شمسی می‌باشد. هنگام برنامه نویسی شما به صورت استاندارد فقط می‌توانید با تاریخ میلادی کار کنید، اما طبیعتا کاربران ایرانی عادت ندارند که

بیشتر بخوانید

ممنون که از ما حمایت می کنید!

۶۲۱۹-۸۶۱۰-۴۴۳۱-۴۶۲۲

به نام محمد غنچه - بانک سامان

:TRC-20

TXH658Q57XgJtMUpRz59b4ANRgq72VHKt5

در نهایت می تونید برای ارسال رسید یا هر سوال و هماهنگی دیگری با من ارتباط برقرار کنید: ۰۹۰۴۴۰۳۹۱۵۳