中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

flutter中如何使用InkWell實現水波紋點擊效果

發布時間:2021-09-27 15:15:38 來源:億速云 閱讀:230 作者:小新 欄目:編程語言

小編給大家分享一下flutter中如何使用InkWell實現水波紋點擊效果,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在flutter 開發中用InkWell或者GestureDetector將某個組件包起來,已添加點擊事件。

GestureDetector 使用點擊無水波紋出現,InkWell可以實現水波紋效果。正常情況下使用 :

InkWell( //單擊事件響應  onTap: () {  },  child: Container(   alignment: Alignment(0, 0),   height: 28,   width: 120,   child: Text("InkWell單擊事件"),  ),  ),

如果在InkWell的上下都出現的顏色的設置,如上中的Container中如果加入了color:Colors.white,或者是Container中的其他widget設置了coloro屬性,這時候InkWell的水波紋效果會無效。

1 widget 設置水波紋點擊效果 并設置widget背景

new Center(   child: new Material(   // 設置背景顏色 默認矩形   color: Colors.purple,   child: new InkWell(    //點擊事件回調    onTap: () {},    //不要在這里設置背景色,for則會遮擋水波紋效果,如果設置的話盡量設置Material下面的color來實現背景色    child: new Container(    width: 300.0,    height: 50.0,    //設置child 居中    alignment: Alignment(0, 0),    child: Text("登錄",style: TextStyle(color: Colors.white,fontSize: 16.0),),    ),   ),   ),  ),

或者 可以使用 Ink來設置,與Material設置color 的區別是,Ink可設置背景的形狀樣式。

new Center(   child: new Material(   //INK可以實現裝飾容器,實現矩形 設置背景色   child: new Ink(    //設置背景 默認矩形    color: Colors.purple,    child: new InkWell(    //點擊事件回調    onTap: () {},    child: new Container(     width: 300.0,     height: 50.0,     //設置child 居中     alignment: Alignment(0, 0),     child: Text("登錄",style: TextStyle(color: Colors.white,fontSize: 16.0),),    ),    ),   ),   ),  ),

2 圓角widget 設置水波紋點擊效果

new Center( child: new Material(//INK可以實現裝飾容器 child: new Ink( //用ink圓角矩形 // color: Colors.red,    decoration: new BoxDecoration(    //不能同時”使用Ink的變量color屬性以及decoration屬性,兩個只能存在一個    color: Colors.purple,    //設置圓角    borderRadius: new BorderRadius.all(new Radius.circular(25.0)),    ),    child: new InkWell(    //圓角設置,給水波紋也設置同樣的圓角    //如果這里不設置就會出現矩形的水波紋效果    borderRadius: new BorderRadius.circular(25.0),     //設置點擊事件回調    onTap: () {    },    child: new Container(     width: 300.0,     height: 50.0,     //設置child 居中     alignment: Alignment(0, 0),     child: Text("登錄",style: TextStyle(color: Colors.white,fontSize: 16.0),),    ),    ),   ),   ),  ),

如果 InkWell 與Ink 不同時設置相同的圓角,例如 lnk 設置的圓角為20,而Ink沒有設置,就會出現 矩形的水波紋點擊效果

3 圓角widget 設置自定義水波紋顏色點擊效果

new Center(child: new Material(child: new Ink( //設置背景    decoration: new BoxDecoration(    color: Colors.purple,    borderRadius: new BorderRadius.all(new Radius.circular(25.0)),    ),    child: new InkResponse(    borderRadius: new BorderRadius.all(new Radius.circular(25.0)),    //點擊或者toch控件高亮時顯示的控件在控件上層,水波紋下層    //highlightColor: Colors.yellowAccent,    //點擊或者toch控件高亮的shape形狀    highlightShape: BoxShape.rectangle,    //.InkResponse內部的radius這個需要注意的是,我們需要半徑大于控件的寬,如果radius過小,顯示的水波紋就是一個很小的圓,    //水波紋的半徑    radius: 300.0,    //水波紋的顏色    splashColor: Colors.black,    //true表示要剪裁水波紋響應的界面 false不剪裁 如果控件是圓角不剪裁的話水波紋是矩形    containedInkWell: true,    //點擊事件    onTap: () {     print("click");    },    child: new Container(     //不能在InkResponse的child容器內部設置裝飾器顏色,否則會遮蓋住水波紋顏色的,containedInkWell設置為false就能看到是否是遮蓋了。     width: 300.0,     height: 50.0,     //設置child 居中     alignment: Alignment(0, 0),     child: Text("登錄",style: TextStyle(color: Colors.white,fontSize: 16.0),),    ),    ),   ),   ),  ),

4 圓角widget 設置高亮顏色點擊效果

new Center(   child: new Material(   child: new Ink(    //設置背景    decoration: new BoxDecoration(    color: Colors.purple,    borderRadius: new BorderRadius.all(new Radius.circular(30.0)),    ),    child: new InkResponse(    borderRadius: new BorderRadius.all(new Radius.circular(30.0)),    //點擊或者toch控件高亮時顯示的控件在控件上層,水波紋下層    highlightColor: Colors.purple[800],    //點擊或者toch控件高亮的shape形狀    highlightShape: BoxShape.rectangle,    //.InkResponse內部的radius這個需要注意的是,我們需要半徑大于控件的寬,如果radius過小,顯示的水波紋就是一個很小的圓,    //水波紋的半徑    radius: 0.0,    //水波紋的顏色 設置了highlightColor屬性后 splashColor將不起效果    splashColor: Colors.red,    //true表示要剪裁水波紋響應的界面 false不剪裁 如果控件是圓角不剪裁的話水波紋是矩形    containedInkWell: true,    onTap: () {     print(      'click');    },    child: new Container(     //不能在InkResponse的child容器內部設置裝飾器顏色,否則會遮蓋住水波紋顏色的,containedInkWell設置為false就能看到是否是遮蓋了。     width: 300.0,     height: 50.0,     //設置child 居中     alignment: Alignment(0, 0),     child: Text("登錄",style: TextStyle(color: Colors.white,fontSize: 16.0),),    ),    ),   ),   ),  ),

以上是“flutter中如何使用InkWell實現水波紋點擊效果”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

时尚| 外汇| 司法| 郯城县| 尼木县| 布尔津县| 澄城县| 华蓥市| 宁都县| 新巴尔虎右旗| 巴彦淖尔市| 葫芦岛市| 昭平县| 盐城市| 阿克陶县| 睢宁县| 宁乡县| 台中县| 南昌市| 特克斯县| 二连浩特市| 岳阳市| 梧州市| 克拉玛依市| 唐山市| 武强县| 香港| 土默特右旗| 昆明市| 龙门县| 佛山市| 淮北市| 辽阳市| 海南省| 朝阳县| 雅江县| 邳州市| 台中县| 苍南县| 九寨沟县| 博野县|