谷歌亲儿子Flutter记录!不可错过的个人小知识点!
加背景颜色:decoration:InputDecoration(fillColor:Colors.white,filled:true,修改宽高:修改TextField的高度可以通过decoration:InputDecoration的contentPadding进行修改newTextField(decoration:InputDecoration(contentPadding:constEdgeInsets.symmetric(vertical:10.0),),)这种修改可以在没有prefixIcon的时候生效,如果加入prefixIcon,就会出现一个最小的高度,这时,按照如上方法修改如果高度较小的时候会修改失败。因而需要再TextField外层加一个BoxConstraints,代码如下:newConstrainedBox(constraints:BoxConstraints(maxHeight:25,maxWidth:200),child:newTextField(decoration:InputDecoration(contentPadding:constEdgeInsets.symmetric(vertical:4.0),hintText:'请输入搜索内容',prefixIcon:Icon(Icons.search),//contentPadding:EdgeInsets.all(10),border:OutlineInputBorder(borderRadius:BorderRadius.circular(15),borderSide:BorderSide.none),filled:true,fillColor:Color(0xffaaaaaa),),),),maxHeight为最大高度,可酌情进行更改,实际修改的高度依旧是contentPadding这个属性。maxWidth为最大宽度,可修改TextField的宽度。较完整的输入框:Container(width:Adapt.dp(326),height:Adapt.dp(95),child:TextField(maxLines:99,//keyboardType:TextInputType.number,style:TextStyle(color:MyColors.black_00,fontSize:MyFonts.mediumminus,),//textAlign:TextAlign.center,decoration:InputDecoration(//加白色背景fillColor:MyColors.grey_f5,filled:true,//hintText:"最低值",hintStyle:TextStyle(color:MyColors.grey_99,fontSize:MyFonts.small),contentPadding:EdgeInsets.fromLTRB(Adapt.dp(5.0),Adapt.dp(7.0),Adapt.dp(5.0),Adapt.dp(6.0)),border:OutlineInputBorder(borderRadius:BorderRadius.all(Radius.circular(Adapt.dp(7))),borderSide:BorderSide.none),),),),加圆角
抽屉加圆角:Widgetbuild(BuildContextcontext){returnContainer(decoration:BoxDecoration(color:MyColors.white,//borderRadius:BorderRadius.circular(Adapt.dp(20)),),child:ClipRRect(borderRadius:BorderRadius.circular(Adapt.dp(20)),child:Drawer(普通Container:borderRadius:BorderRadius.only(topLeft:Radius.circular(Adapt.dp(20)),bottomLeft:Radius.circular(Adapt.dp(20),)),加边框
decoration:BoxDecoration(border:Border(right:BorderSide(width:1,color:Color(0xffddd)))),弹出抽屉
`Scaffold.of()calledwithacontextthatdoesnotcontainaScaffold.`如果出现此错,用GlobalKey<ScaffoldState>key=newGlobalKey();void_handlerDrawerButton(){key.currentState.openEndDrawer();}Widgetbuild(BuildContextcontext){returnScaffold(key:key,backgroundColor:MyColors.grey_f5,appBar:_appbar,endDrawer:DrawerWidget(),或者Container(child:...)body:Container(),);}在listView中为每一个list增添控制器
voidinitState(){//TODO:implementinitStatesuper.initState();//this.getTotalPrice();for(inti=0;i<productList.length;i++){//controller.add(TextEditingController(text:"1"));productList[i]["getNum"]="1";}}returnproductList.map((item){vartextEditingController=newTextEditingController(text:item["getNum"]);TextField(controller:textEditingController,onChanged:(text){//_onChanceCount(item,text);//setState((){会弹回输入框item["getNum"]=text;//});},Android Studio
打开AndroidStudio主界面:键盘操作Ctrl+Alt+S打开设置界面左侧搜索框输入keymap比如想要查找类的名称补全,就可以在右边的搜索框内输入classname关键字可以进行相关的修改shortcut就是快捷键的意思abbreviation是指缩写其他颜色添加
color:constColor(0xFF0099ff),or/Colors.grey/透明:child:Opacity(opacity:0,child:Container(width:100.0,height:100.0,margin:EdgeInsets.all(20.0),color:Color(0xffff0000),),),color:Colors.transparent或者rgbo延时加载
当setState()ormarkNeedsBuild()calledduringbuild.的时候用voidonDataChange2(val){if(mounted)Future.delayed(Duration(milliseconds:200)).then((e){setState((){isTab=val;});});}迁移androidX(runtime和usetime不一致时)在项目级别build.gradle将类路径更改为com.android.tools.build:gradle:3.3.1
。在应用程序级别build.gradle将您的compileSdkVersion
和更改targetSdkVersion
为28。现在,右键单击flutter项目中的android目录,转到Flutter,然后单击Android Studio中的Open Android模块。在新窗口中打开项目。现在,转到工具栏中的“重构”,然后单击“迁移到AndroidX”。然后单击“执行重构”并等待gradle构建。改gradle版本
android/gradle/wrapper/grade-wrapper.properties
#FriJun2308:50:38CEST2017distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip定时器
验证码那样的
_countdownTimer=newTimer.periodic(newDuration(seconds:1),(timer){if(mounted){setState((){if(countDownNum>1){countDownNum--;}else{showCountDown=false;_countdownTimer.cancel();_countdownTimer=null;}});}});复制到粘贴板
GestureDetector(onTap:(){ClipboardDatadata=newClipboardData(text:'xx');Clipboard.setData(data);})flutter中bottomNavigationBar切换组件保存状态方案
cloud.tencent.com/developer/a…
部分修改:
var_pages=[newWebPage(),newDiscoverPage(),newUserPage(),];数据源
标准的ListView
构造函数适用于小列表。 为了处理包含大量数据的列表,最好使用ListView.builder
构造函数。
ListView
的构造函数需要一次创建所有项目,但ListView.builder
的构造函数不需要,它将在列表项滚动到屏幕上时创建该列表项。
https://flutterchina.club/cookbook/lists/long-lists/finalcontroller=newList<String>.generate(3,(i)=>"controller$i");//下面的报错https://blog.csdn.net/dpl12/article/details/92012226finalList<String>items;items:newList<String>.generate(1000,(i)=>"item$i")/延时刷新
_dataRefresh(){Future.delayed(Duration(milliseconds:200)).then((e){_list=[];_getDataList();});}最后
上面的内容大家可以收藏学习,希望可以点赞支持一波!!!
可以贡献一套Flutte学习视频,简信我领取,也可以分享出去一起学习哦
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。