iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0
Software Development

初學軟體開發系列 第 28

Day28-輸入框(下)

  • 分享至 

  • xImage
  •  

今日學習內容
輸入框

延續昨日的輸入框,接著要做密碼框,因為要寫一個釋放的動作,所以要從原本的無狀態StatelessWidget改成有狀態StatefulWidget。
接下來要從無狀態轉到有狀態並執行看看成不成功。
程式碼如下:

import 'package:flutter/material.dart';

class test123 extends StatefulWidget {
  const test123({super.key});

  @override
  State<test123> createState() => _test123State();
}

class _test123State extends State<test123> {
  Widget _buildName(){
    return const TextField(
      decoration: InputDecoration(
        labelText:"帳號",
        hintText: "請輸入帳號",
        prefixIcon:Icon(Icons.person),
        suffixIcon:Icon(Icons.edit),
      ),
    );
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('歡迎'),
      ),
      body:Padding(
        padding: const EdgeInsets.all(12.0),
        child: Column(children: [_buildName(),]),
      ) ,
    );
  }
}

https://ithelp.ithome.com.tw/upload/images/20220928/20151918Ye1mMx4PMq.png
成功之後,要加入釋放的程式碼。
程式碼:

 @override
  void dispose(){
    _controllerName.dispose();
    super.dispose();
  }

並且需要在前面宣告_controllerName變數->
final TextEditingController _controllerName = TextEditingController();

接下來要加入密碼框的程式

差不多和製作帳號框的模式一樣,只需要更改一些變數和名稱就可以了。
https://ithelp.ithome.com.tw/upload/images/20220928/20151918GmZdWUiFwF.png
帳號以及密碼的框有點太擠,使用SizedBox來設定。
const SizedBox(height:10,),
都做好之後,接下來要弄登入的按鈕,會使用在Widget裡的。
按鈕程式碼:

Widget _Login(){
    return ElevatedButton(
      onPressed:(){
        print("帳號:${_controllerName.text}");
        print("密碼:${_controllerPass.text}");
      },
        child:const Text("登入"),
    );
  }

點擊按鈕之後順便print出帳號密碼。
https://ithelp.ithome.com.tw/upload/images/20220928/20151918v6tDQaNpnt.png

我們在登入的介面常常看到輸入密碼的時候是隱藏的,可以在密碼框的Widget裡面加入obscureText:true,,就可以讓輸入的密碼為'*'。

https://ithelp.ithome.com.tw/upload/images/20220928/20151918531m5hjnlk.png

今日總結
很多的應用程式下載完都要登入帳號密碼,所以這兩天學的輸入框,讓我更了解登入的系統畫面!


上一篇
Day27-登入帳號密碼介面(上)
下一篇
Day29-實作介面
系列文
初學軟體開發31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言