Flutter中为控件添加交互,带你一起探究Android事件分发机制

这篇具有很好参考价值的文章主要介绍了Flutter中为控件添加交互,带你一起探究Android事件分发机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

),

);

}

}

代码运行效果如图:

Flutter中为控件添加交互,带你一起探究Android事件分发机制,2024年程序员学习,flutter,交互,android

2.父widget管理widget的状态

对于父widget来说,管理状态并告诉其子widget何时更新通常是最有意义的。 例如,IconButton允许您将图标视为可点按的按钮。 IconButton是一个无状态的小部件,因为我们认为父widget需要知道该按钮是否被点击来采取相应的处理。在以下示例中,TapboxB通过回调将其状态导出到其父项。由于TapboxB不管理任何状态,因此它的父类为StatelessWidget。

class ParentWidget extends StatefulWidget{

@override

State createState() {

return new _ParentWidgetState();

}

}

class _ParentWidgetState extends State{

bool _active = false;

void _handleTapboxChanged(bool newValue){

setState(() {

_active = newValue;

});

}

@override

Widget build(BuildContext context) {

return new Container(

child: TapBoxB(

active: _active,

onChanged: _handleTapboxChanged,

),

);

}

}

class TapBoxB extends StatelessWidget{

TapBoxB({Key key, this.active: false, @required this.onChanged})
super(key: key);

final bool active;

final ValueChanged onChanged;

void _handleTap(){

onChanged(!active);

}

@override

Widget build(BuildContext context) {

return new GestureDetector(

onTap: _handleTap,

child: new Container(

child: new Center(

child: new Text(

active ? “Active” : “Inactive”,

style: new TextStyle(fontSize: 32, color: Colors.white),

),

),

width: 200,

height: 200,

decoration: new BoxDecoration(

color: active ? Colors.lightGreen[700] :Colors.grey[600],

),

),

);

}

}

代码效果:

Flutter中为控件添加交互,带你一起探究Android事件分发机制,2024年程序员学习,flutter,交互,android

3.混搭管理

对于一些widget来说,混搭管理的方法最有意义的。在这种情况下,有状态widget管理一些状态,并且父widget管理其他状态。

在TapboxC示例中,点击时,盒子的周围会出现一个深绿色的边框。点击时,边框消失,盒子的颜色改变。 TapboxC将其_active状态导出到其父widget中,但在内部管理其_highlight状态。这个例子有两个状态对象_ParentWidgetState和_TapboxCState。

class ParentWidget extends StatefulWidget {

@override

_ParentWidgetState createState() => new _ParentWidgetState();

}

class _ParentWidgetState extends State {

bool _active = false;

void _handleTapboxChanged(bool newValue) {

setState(() {

_active = newValue;

});

}

@override

Widget build(BuildContext context) {

return new Container(

child: new TapboxC(

active: _active,

onChanged: _handleTapboxChanged,

),

);

}

}

//----------------------------- TapboxC ------------------------------

class TapboxC extends StatefulWidget {

TapboxC({Key key, this.active: false, @required this.onChanged})
super(key: key);

final bool active;

final ValueChanged onChanged;

_TapboxCState createState() => new _TapboxCState();

}

class _TapboxCState extends State {

bool _highlight = false;

void _handleTapDown(TapDownDetails details) {

setState(() {

_highlight = true;

});

}

void _handleTapUp(TapUpDetails details) {

setState(() {

_highlight = false;

});

}

void _handleTapCancel() {

setState(() {

_highlight = false;

});

}

void _handleTap() {

widget.onChanged(!widget.active);

}

Widget build(BuildContext context) {

// This example adds a green border on tap down.

// On tap up, the square changes to the opposite state.

return new GestureDetector(

onTapDown: _handleTapDown, // Handle the tap events in the order that

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
Flutter中为控件添加交互,带你一起探究Android事件分发机制,2024年程序员学习,flutter,交互,android
Flutter中为控件添加交互,带你一起探究Android事件分发机制,2024年程序员学习,flutter,交互,android
Flutter中为控件添加交互,带你一起探究Android事件分发机制,2024年程序员学习,flutter,交互,android
Flutter中为控件添加交互,带你一起探究Android事件分发机制,2024年程序员学习,flutter,交互,android

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
Flutter中为控件添加交互,带你一起探究Android事件分发机制,2024年程序员学习,flutter,交互,android

最后

现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

上述【高清技术脑图】以及【配套的架构技术PDF】点击:Android架构视频+BAT面试专题PDF+学习笔记,或者私信回复【技能提升】即可获取!

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!

,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

上述【高清技术脑图】以及【配套的架构技术PDF】点击:Android架构视频+BAT面试专题PDF+学习笔记,或者私信回复【技能提升】即可获取!

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!

Android架构师之路很漫长,一起共勉吧!文章来源地址https://www.toymoban.com/news/detail-847410.html

到了这里,关于Flutter中为控件添加交互,带你一起探究Android事件分发机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一统天下 flutter - 插件: flutter 使用 android 原生控件,并做数据通信

    源码 https://github.com/webabcd/flutter_demo 作者 webabcd 示例如下: libpluginplugin2.dart androidappsrcmainkotlincomexampleflutter_demoMainActivity.kt androidappsrcmainkotlincomexampleflutter_demoMyFlutterPlugin2.kt androidappsrcmainkotlincomexampleflutter_demoMyView.kt androidappsrcmainreslayoutview_my.xml 源码 http

    2024年02月03日
    浏览(49)
  • Flutter 与原生交互(Android,iOS)

    本质上 Flutter 和 原生通信是通过 Channel 来完成的:Flutter中消息的传递是完全异步的; 消息使用 Channel(平台通道) 在客户端(UI) 和主机(p平台) Flutter 与 native端交互三种方式 1.BasicMessageChannel (用于传递字符串和半结构化信息,持续通信使用,例如dart端将服务器的数据陆续传入到

    2024年02月17日
    浏览(49)
  • Android应用-flutter使用Positioned将控件定位到底部中间

    要将Positioned定位到屏幕底部中间的位置,你可以使用MediaQuery来获取屏幕的高度,然后设置Positioned的bottom属性和left或right属性,一般我们left和right都会设置一个值让控制置于合适的位置,那么如何使其位于底部中央? 以下是一个示例代码: 在这个例子中,Positioned包含一个具

    2024年02月03日
    浏览(47)
  • Xamarin.Android实现界面自动添加控件

    有时需要在APP中动态的添加控件,因此记录下在Xamarin中的实现步骤。 VS2022社区版 UI的代码如何 活动中的代码如下: 工程代码 界面中添加控件,就是通过 AddView 方法实现的,方法有如下的重载版本: 参数 child 就是要添加的控件元素; LayoutParams 代表待添加元素的样式。但也

    2024年02月15日
    浏览(38)
  • Android应用开发-Flutter的LongPressDraggable控件回调函数onDraggableCanceled使用

    以下是如何使用 onDraggableCanceled 的示例: velocity 参数表示拖动被取消时的速度信息。 offset 参数表示拖动被取消时的偏移量信息。 这个回调通常用于在拖动被取消时执行一些清理工作或展示一些反馈。例如,你可能想要将拖动对象返回到原始位置,或者显示一个提示,告诉用

    2024年03月08日
    浏览(42)
  • flutter和android互相调用、android原生项目与flutter module之间的交互、如何在flutter module中使用原生的方法

    bridge.dart MainActivity.kt MainActivity中 Flutter中 android项目依赖flutter module的方式网上有很多,这里就不做讲解。主要说一下这种情况下android如何与flutter module之间进行方法的调用 踩坑:期初我是想让flutter module调用它内部中的.android文件夹下的原生代码。.android文件夹下有Flutter、

    2023年04月08日
    浏览(45)
  • Android:手把手带你入门跨平台UI开发框架Flutter

    定义:一款Google出品开源的移动客户端UI开发框架(SDK) 作用:用一套代码同时在Android、iOS上快速构建高质量、高性能的原生用户界面 开发语言:Dart语言(高开发效率、高性能等) 2. 特点 Flutter的主要特点包括:使用自身的高性能渲染引擎进行渲染 Dart编程语言语言 具体介

    2024年04月13日
    浏览(62)
  • Android应用-Flutter实现丝滑的滑动删除、移动排序等-Dismissible控件详解

    Dismissible 是 Flutter 中用于实现可滑动删除或拖拽操作的一个有用的小部件。主要用于在用户对列表项或任何其他可滑动的元素执行删除或拖动操作时,提供一种简便的实现方式。 列表项删除: 允许用户在列表中通过滑动手势删除某个项。 左右滑动: 提供可自定义的背景,当

    2024年02月04日
    浏览(48)
  • Flutter 与 原生交互(Android),靠着这份900多页的PDF面试整理

    private static final String TAG = “FlutterPluginBasicTest”; public static String CHANNEL = “com.mmd.flutterapp/plugin”; static BasicMessageChannel messageChannel; public static void registerWith(PluginRegistry.Registrar registrar) { messageChannel = new BasicMessageChannel(registrar.messenger(),CHANNEL,StandardMessageCodec.INSTANCE); FlutterPluginBas

    2024年04月14日
    浏览(48)
  • 在 Python 中为对象添加属性

    我们将介绍如何在 Python 中为对象添加属性。 我们还将通过示例介绍如何在 Python 中更改对象的属性。 在 Python 中,我们时常使用对象,因为 Python 是一种面向对象的语言。 对象使我们的代码可重用并易于实现复杂的结构。 对象的主要部分是它们的属性。 属性定义某个对象的

    2024年02月08日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包