在flutter開發(fā)過程中,發(fā)現(xiàn)Android手機(jī)在App首頁(yè)點(diǎn)擊物理返回按鈕時(shí),App會(huì)退出并且再次點(diǎn)開App時(shí)會(huì)重新啟動(dòng),這代表了上次的退出直接殺死了App,和我們平常的退到手機(jī)桌面不同,所以開發(fā)了一個(gè)單獨(dú)插件來處理這種情況。

通渭ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
使用步驟如下:
1、pubspec.yaml文件中引入依賴
2、引用插件
3、使用插件來退出App到桌面,并且保持App后臺(tái)運(yùn)行
可根據(jù)實(shí)際情況在_onWillPop方法中處理相關(guān)邏輯,比如連續(xù)兩次點(diǎn)擊物理返回按鈕才退出到桌面等。
Flutter中給我們預(yù)先定義好了一些按鈕控件給我們用,常用的按鈕如下
我們先來看看MaterialButton中的屬性,可以看到能設(shè)置的屬性還是很多的。
下面我們來看看常用屬性
而在Android中如果我們要修改按鈕樣式的話,需要通過selector和Shape等方式進(jìn)行修改,相比較Flutter來說是要麻煩不少的
RaisedButton的構(gòu)造方法如下,由于繼承自MaterialButton,所以MaterialButton中的大多數(shù)屬性這邊都能用,且效果一致,這里就不在贅述了
下面我們來看一下屬性
接收一個(gè)方法,點(diǎn)擊按鈕時(shí)回調(diào)該方法。如果傳null,則表示按鈕禁用
如下圖所示
按鈕文本控件,一般都是傳一個(gè)Text Widget
按鈕顏色
按鈕的文本顏色
點(diǎn)擊按鈕時(shí)水波紋顏色
高亮顏色,點(diǎn)擊(長(zhǎng)按)按鈕后的顏色
陰影范圍,一般不會(huì)設(shè)置太大
內(nèi)邊距,使用
或者
shape用來設(shè)置按鈕的形狀,其接收值是ShapeBorder類型,ShapeBorder是一個(gè)抽象類,我們來看看有哪些實(shí)現(xiàn)類
可以看到,實(shí)現(xiàn)類還是很多的,我們主要來看看常用的即可。
borderRadius 接收一個(gè)BorderRadius類型的值,常用方法如下
我們可以把borderRadius分為上下左右四個(gè)方向,下面的方法都是對(duì)這四個(gè)方向進(jìn)行設(shè)置,
帶斜角的長(zhǎng)方形邊框
圓形邊框
圓角矩形
兩端是半圓的邊框
FlatButton跟RaisedButton用法基本一致,下面我們就直接用一下
注意,OutlineButton是一個(gè)有默認(rèn)邊線且背景透明的按鈕,也就是說我們?cè)O(shè)置其邊線和顏色是無效的,其他屬性跟MaterialButton中屬性基本一致
下面我們直接來使用
效果如下:
IconButton是直接繼承自StatelessWidget的,默認(rèn)沒有背景
我們來看一下他的構(gòu)造方法
可以看到,icon是必填參數(shù)
icon接收一個(gè)Widget,但是一般我們都是傳入一個(gè)Icon Widget
其他屬性跟MaterialButton中的屬性用法基本一致
我們來用一下
效果如下:
我們也可以傳一個(gè)Text或其他Widget,這個(gè)大家自行嘗試吧
如果我們需要設(shè)置按鈕的最小寬度以及高度,button屬性中并沒有提供對(duì)應(yīng)的設(shè)置方法
使用如下:
Flutter中Button內(nèi)容大概就是這些
原因:在flutter中,鍵盤彈起時(shí)系統(tǒng)會(huì)縮小Scaffold的高度并重建
1)把Scaffold的resizeToAvoidBottomInset屬性設(shè)置為false,這樣在鍵盤彈出時(shí)將不會(huì)resize
2)把寫死的高度改為 原高度 - MediaQuery.of(context).viewInsets.bottom ,鍵盤彈出時(shí)布局將重建,而這個(gè) MediaQuery.of(context).viewInsets.bottom 變量在鍵盤彈出前是0,鍵盤彈起后的就是鍵盤的高度
將輸入框放進(jìn)可滾動(dòng)的Widget中即可,當(dāng)輸入框獲取焦點(diǎn)后,系統(tǒng)會(huì)自動(dòng)將它滑動(dòng)到可視區(qū)域
此控件比較簡(jiǎn)單,按鈕的功能可劃分為UI樣式與事件回調(diào)
這里將幾種不同的按鈕一起運(yùn)行,做下對(duì)比動(dòng)圖如下:
這里對(duì)五種按鈕進(jìn)行column居中排列如下
Text用于顯示簡(jiǎn)單樣式文本,它包含一些控制文本顯示樣式的一些屬性。
TextStyle用于指定文本顯示的樣式如顏色、字體、粗細(xì)、背景等。
TextStyle更多屬性設(shè)置如下:
如果我們需要對(duì)一個(gè)Text內(nèi)容的不同部分按照不同的樣式顯示,即富文本,這時(shí)就可以使用TextSpan,它代表文本的一個(gè)“片段”。
如上述,我們當(dāng)然也可以在上述鏈接上添加手勢(shì)事件,后續(xù)會(huì)提到。
在widget樹中,文本的樣式默認(rèn)是可以被繼承的,因此,如果在widget樹的某一個(gè)節(jié)點(diǎn)處設(shè)置一個(gè)默認(rèn)的文本樣式,那么該節(jié)點(diǎn)的子樹中所有文本都會(huì)默認(rèn)使用這個(gè)樣式,而DefaultTextStyle正是用于設(shè)置默認(rèn)文本樣式的。
舉例如下:
Flutter 構(gòu)建一個(gè)CustomButton,組合RaiseButton和label.
//自定義CustomButton類方法
class CustomButton extends StatelessWidget {
final String label;
CustomButton(this.label);
@override
Widget build(BuildContext context) {
return RaisedButton(onPressed: () {}, child: Text(label));
}
}
//使用CustomButton,在頁(yè)面中間顯示一個(gè)“Hello”的按鈕
@override
Widget build(BuildContext context) {
return Center(
child: CustomButton("Hello"),
);
}
網(wǎng)站題目:flutter按鍵,flutter入門教程
文章位置:http://chinadenli.net/article9/dsgesoh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、Google、做網(wǎng)站、網(wǎng)站排名、小程序開發(fā)、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)