国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

flutter監(jiān)聽鍵盤輸入做出反應(yīng)

這篇具有很好參考價(jià)值的文章主要介紹了flutter監(jiān)聽鍵盤輸入做出反應(yīng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

/// Flutter code sample for [FocusNode].

void main() => runApp(const FocusNodeExampleApp());

class FocusNodeExampleApp extends StatelessWidget {
  const FocusNodeExampleApp({super.key});

  
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('FocusNode Sample')),
        body: const FocusNodeExample(),
      ),
    );
  }
}

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

  
  State<ColorfulButton> createState() => _ColorfulButtonState();
}

class _ColorfulButtonState extends State<ColorfulButton> {
  late FocusNode _node;
  bool _focused = false;
  late FocusAttachment _nodeAttachment;
  Color _color = Colors.white;

  
  void initState() {
    super.initState();
    _node = FocusNode(debugLabel: 'Button');
    _node.addListener(_handleFocusChange);
    _nodeAttachment = _node.attach(context, onKey: _handleKeyPress);
  }

  void _handleFocusChange() {
    if (_node.hasFocus != _focused) {
      setState(() {
        _focused = _node.hasFocus;
      });
    }
  }

  KeyEventResult _handleKeyPress(FocusNode node, RawKeyEvent event) {
    if (event is RawKeyDownEvent) {
      debugPrint(
          'Focus node ${node.debugLabel} got key event: ${event.logicalKey}');
      if (event.logicalKey == LogicalKeyboardKey.keyR) {
        debugPrint('Changing color to red.');
        setState(() {
          _color = Colors.red;
        });
        return KeyEventResult.handled;
      } else if (event.logicalKey == LogicalKeyboardKey.keyG) {
        debugPrint('Changing color to green.');
        setState(() {
          _color = Colors.green;
        });
        return KeyEventResult.handled;
      } else if (event.logicalKey == LogicalKeyboardKey.keyB) {
        debugPrint('Changing color to blue.');
        setState(() {
          _color = Colors.blue;
        });
        return KeyEventResult.handled;
      }
    }
    return KeyEventResult.ignored;
  }

  
  void dispose() {
    _node.removeListener(_handleFocusChange);
    // The attachment will automatically be detached in dispose().
    _node.dispose();
    super.dispose();
  }
  void callKeyboard() {
    SystemChannels.textInput.invokeMethod<void>('TextInput.show');
  }

  
  Widget build(BuildContext context) {
    _nodeAttachment.reparent();
    return GestureDetector(
      onTap: () {
        if (_focused) {
          _node.unfocus();
        } else {
          _node.requestFocus();
        }
      },
      child: Column(
        children: [
          Container(
            width: 400,
            color: _focused ? _color : Colors.white,
            alignment: Alignment.center,
            child:
            Text(_focused ? "I'm in color! Press R,G,B!" : 'Press to focus'),
          ),
          Container(
              width: 160,
              color: Colors.orange,
              child: OutlinedButton(
                child: Text("Call Keyboard"),
                onPressed: callKeyboard,
              )
          ),
        ],
      ),
    );
  }
}

class FocusNodeExample extends StatelessWidget {
  const FocusNodeExample({super.key});

  
  Widget build(BuildContext context) {
    final TextTheme textTheme = Theme.of(context).textTheme;
    return DefaultTextStyle(
      style: textTheme.headlineMedium!,
      child: const ColorfulButton(),
    );
  }
}

文章來源地址http://www.zghlxwxcb.cn/news/detail-695006.html

到了這里,關(guān)于flutter監(jiān)聽鍵盤輸入做出反應(yīng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • flutter開發(fā)實(shí)戰(zhàn)-RawKeyboardListener監(jiān)聽鍵盤事件及keycode。

    flutter開發(fā)實(shí)戰(zhàn)-RawKeyboardListener監(jiān)聽鍵盤事件及keycode。 最近開發(fā)過程中遇到外設(shè)備的按鈕點(diǎn)擊觸發(fā)相應(yīng)的操作,需要監(jiān)聽對(duì)應(yīng)的keycode來開啟游戲或者相關(guān)操作。 這里用到了RawKeyboardListener RawKeyboardListener是一個(gè)Widget,可以用來監(jiān)聽鍵盤的原始輸入事件。 RawKeyboardListener屬性 on

    2024年02月14日
    瀏覽(18)
  • uniapp監(jiān)聽掃碼槍鍵盤事件|無輸入框式監(jiān)聽

    一般的掃碼槍通過USB或藍(lán)牙連接手機(jī)或電腦,充當(dāng)?shù)氖且粋€(gè)外接設(shè)備。當(dāng)掃碼后,掃碼槍會(huì)自動(dòng)識(shí)別內(nèi)容,然后向連接的電腦或手機(jī)發(fā)送鍵盤事件keydown或keyup。 input輸入框式 如果頁面上有input輸入框就很簡單,直接聚焦input,然后掃碼,input框會(huì)自動(dòng)填充內(nèi)容,并自動(dòng)產(chǎn)生回車

    2024年02月11日
    瀏覽(23)
  • 前端監(jiān)聽鍵盤事件

    前端監(jiān)聽鍵盤事件

    需求就如題所示 在react中監(jiān)聽如下: keydown事件是鍵盤的相關(guān)事件,我們主動(dòng)去監(jiān)聽一下,然后別忘了去銷毀,?然后有個(gè)寫法: 在useEffect中使用return返回了一個(gè)清除監(jiān)聽的函數(shù),實(shí)踐了一下return的執(zhí)行時(shí)機(jī),發(fā)現(xiàn)是在頁面切走的時(shí)候,也就是說,當(dāng)前的組件被銷毀的時(shí)候執(zhí)

    2024年02月12日
    瀏覽(26)
  • Flutter 點(diǎn)擊輸入框后 鍵盤閃出后立刻消失

    flutter 在布局最頂端使用的是Scaffold組件,在點(diǎn)擊輸入框鍵盤彈出后,布局的默認(rèn)反應(yīng)是改變屏幕大小重新布局。 這時(shí)通常會(huì)在Scaffold中添加選項(xiàng): resizeToAvoidBottomPadding:false 添加之后,應(yīng)用整體布局不會(huì)隨著鍵盤彈出而刷新改變。 但是鍵盤的彈出仍然會(huì)改變 MediaQuery.of(contex

    2024年02月09日
    瀏覽(48)
  • 如何解決在Flutter中使用TextField輸入框輸入中文時(shí)可能會(huì)出現(xiàn)鍵盤輸入不了中文的問題。

    在Flutter中使用TextField輸入框輸入中文時(shí)可能會(huì)出現(xiàn)鍵盤輸入不了中文的問題。 解決方法有以下幾種: 在TextField中指定輸入類型為TextInputType.text TextField( ? keyboardType: TextInputType.text, ? ... ) 2.在TextField中指定輸入工具為中文輸入法: TextField( ? inputFormatters: [WhitelistingTextInputFor

    2023年04月22日
    瀏覽(52)
  • 前端Vue自定義支付密碼輸入鍵盤Keyboard和支付設(shè)置輸入框Input

    前端Vue自定義支付密碼輸入鍵盤Keyboard和支付設(shè)置輸入框Input

    前端Vue自定義支付密碼輸入鍵盤Keyboard和支付設(shè)置輸入框Input, 閱讀全文下載完整代碼請(qǐng)關(guān)注微信公眾號(hào): 前端組件開發(fā) 效果圖如下: 使用方法 HTML代碼實(shí)現(xiàn)部分

    2024年02月10日
    瀏覽(33)
  • 【Flutter 面試題】Dart是什么?Dart和Flutter有什么關(guān)系?

    【Flutter 面試題】Dart是什么?Dart和Flutter有什么關(guān)系?

    【Flutter 面試題】Dart是什么?Dart和Flutter有什么關(guān)系? ???? 正在學(xué) Flutter 的同學(xué),你好! ?? 本專欄是解決 Flutter 面試過程中可能出現(xiàn)的問題,而進(jìn)行匯總整理的。一個(gè)問題一篇文章,盡可能詳細(xì)解答,滿足面試需求。 ?? 想解決開發(fā)中的零散問題?碎片化教程 ?? Flutte

    2024年02月22日
    瀏覽(21)
  • Vue H5 前端自定義車牌號(hào)輸入鍵盤(支持新能源)

    Vue H5 前端自定義車牌號(hào)輸入鍵盤(支持新能源)

    這個(gè)項(xiàng)目是基于 vue2+vant? 寫的錄入車牌的鍵盤, 有需要的伙伴可以參考一下; 先看一下效果圖: ? 這個(gè)是組件的代碼,直接在頁面中引用即可,車牌號(hào)的值存在carNumber里面,在確定按鈕中,講完整的carNumber傳到引用的頁面中即可. 在頁面中引用(這邊只貼了引用部分的代碼,其他的根據(jù)

    2024年02月02日
    瀏覽(21)
  • 前端知識(shí)(十三)——JavaScript監(jiān)聽按鍵,禁止F12,禁止右鍵,禁止保存網(wǎng)頁【Ctrl+s】等操作
  • 【Flutter】Flutter Dart 獲取當(dāng)前時(shí)間戳

    在日常的軟件開發(fā)中,我們經(jīng)常需要獲取當(dāng)前的時(shí)間戳。無論是用于日志記錄,還是用于生成唯一標(biāo)識(shí)符,或者是用于時(shí)間同步,時(shí)間戳都發(fā)揮著重要的作用。 本文將詳細(xì)介紹如何在 Flutter 和 Dart 中獲取當(dāng)前時(shí)間戳。 通過閱讀本文,你將掌握以下知識(shí): 了解時(shí)間戳的重要性

    2024年02月12日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包