最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flutter開發(fā)實(shí)現(xiàn)底部留言板

 更新時(shí)間:2022年03月23日 16:09:46   作者:追逐驀然  
這篇文章主要為大家詳細(xì)介紹了Flutter開發(fā)實(shí)現(xiàn)底部留言板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Flutter實(shí)現(xiàn)底部留言板的具體代碼,供大家參考,具體內(nèi)容如下

前言

現(xiàn)在大家基本上都會(huì)去接觸抖音那款app,其中抖音中的留言區(qū)域的效果也是要前幾天工作的需求,看了網(wǎng)上對(duì)這塊并沒有什么博客介紹。只能自己封裝編寫了。

主要技術(shù)

其實(shí)這個(gè)技術(shù)就是運(yùn)用了動(dòng)畫這個(gè)功能封裝實(shí)現(xiàn)的

實(shí)例代碼分析

初始化封裝

?/*初始化狀態(tài)*/
? initState() {
? ? super.initState();

? ? /*創(chuàng)建動(dòng)畫控制類對(duì)象*/
? ? controller = new AnimationController(
? ? ? ? duration: const Duration(milliseconds: 1000),
? ? ? ? vsync: this);

? ? /*創(chuàng)建補(bǔ)間對(duì)象*/
? ? tween = new Tween(begin: 0.0, end: 1.0)
? ? ? ? .animate(controller) ? ?//返回Animation對(duì)象
? ? ? ..addListener(() { ? ? ? ?//添加監(jiān)聽
? ? ? ? setState(() {
? ? ? ? ? Provide.value<IndexProvide>(context).changHeight(tween.value);
? ? ? ? ?// print(tween.value); ? //打印補(bǔ)間插值
? ? ? ? });
? ? ? });
? ? // controller.forward(); ? ? ? //執(zhí)行動(dòng)畫
? }

全部代碼

import 'package:flutter/material.dart';

void main(){

? runApp(
? ? MaterialApp(
? ? ? debugShowCheckedModeBanner: false,
? ? ? home: cityContent(),
? ? )
? );
}


class cityContent extends StatefulWidget {
? cityContent({Key key}) : super(key: key);

? _cityContentState createState() => _cityContentState();
}

class _cityContentState extends State<cityContent> with SingleTickerProviderStateMixin{

? Animation<double> tween;
? AnimationController controller;

? /*初始化狀態(tài)*/
? initState() {
? ? super.initState();

? ? /*創(chuàng)建動(dòng)畫控制類對(duì)象*/
? ? controller = new AnimationController(
? ? ? ? duration: const Duration(milliseconds: 1000),
? ? ? ? vsync: this);

? ? /*創(chuàng)建補(bǔ)間對(duì)象*/
? ? tween = new Tween(begin: 0.0, end: 1.0)
? ? ? ? .animate(controller) ? ?//返回Animation對(duì)象
? ? ? ..addListener(() { ? ? ? ?//添加監(jiān)聽
? ? ? ? setState(() {
? ? ? ? ? Provide.value<IndexProvide>(context).changHeight(tween.value);
? ? ? ? ?// print(tween.value); ? //打印補(bǔ)間插值
? ? ? ? });
? ? ? });
? ? // controller.forward(); ? ? ? //執(zhí)行動(dòng)畫
? }

? @override
? Widget build(BuildContext context) {
? ? return Scaffold(
? ? ? ? body: Stack(
? ? ? ? children: <Widget>[
? ? ? ? ? InkWell(
? ? ? ? ? ? ? onTap: (){
? ? ? ? ? ? ? ? // 動(dòng)作反方向執(zhí)行,即關(guān)閉留言板
? ? ? ? ? ? ? ? controller.reverse();
? ? ? ? ? ? ? },
? ? ? ? ? ? child: ?ListView(
? ? ? ? ? ? ? children: <Widget>[
? ? ? ? ? ? ? ? Center(
? ? ? ? ? ? ? ? child: InkWell(
? ? ? ? ? ? ? ? ? onTap: (){
? ? ? ? ? ? ? ? ? ? controller.forward(); ? ? ? //執(zhí)行動(dòng)畫,即打開留言板
? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? child: Text(
? ? ? ? ? ? ? ? ? ? '打開底部抽屜'
? ? ? ? ? ? ? ? ? ),
? ? ? ? ? ? ? ? )
? ? ? ? ? ? ? ),
? ? ? ? ? ? ? ],
? ? ? ? ? ? ),
? ? ? ? ? ),
? ? ? ? ? Positioned(
? ? ? ? ? ? bottom: 0,
? ? ? ? ? ? child: Container(
? ? ? ? ? ? ? margin: EdgeInsets.fromLTRB(20, 0, 20, 0),
? ? ? ? ? ? ? height: 400*controller.value,
? ? ? ? ? ? ? width: 300,
? ? ? ? ? ? ? color: Colors.grey.shade300,
? ? ? ? ? ? ? child: ListView(
? ? ? ? ? ? ? // physics: NeverScrollableScrollPhysics(),
? ? ? ? ? ? ? children: <Widget>[
? ? ? ? ? ? ? ? Container(
? ? ? ? ? ? ? ? ? margin: EdgeInsets.only(left: 240),
? ? ? ? ? ? ? ? ? child: InkWell(
? ? ? ? ? ? ? ? ? ? onTap: (){
? ? ? ? ? ? ? ? ? ? ? // 動(dòng)作反方向執(zhí)行,即關(guān)閉留言板
? ? ? ? ? ? ? ? ? ? ? controller.reverse();
? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? child: Icon(Icons.clear),
? ? ? ? ? ? ? ? ? )
? ? ? ? ? ? ? ? ),
? ? ? ? ? ? ? ? Center(
? ? ? ? ? ? ? ? ? child: Text('留言列表'),
? ? ? ? ? ? ? ? )
? ? ? ? ? ? ? ],
? ? ? ? ? ? ),
? ? ? ? ? )
? ? ? ? ),
? ? ? ? ],
? ? ? )
? ? );
? }
}

現(xiàn)在這個(gè)大部分的功能是現(xiàn)在的,不過還是差一個(gè)手勢的問題。我有一個(gè)初步的想法是結(jié)合狀態(tài)管理可以做的,不過有一個(gè)bug,就是用手勢來改變留言板的高度的時(shí)候,動(dòng)畫狀態(tài)沒有初始化。希望知道的小伙伴跟我探討探討。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺析Flutter AbsorbPointer 與 IgnorePointer的區(qū)別

    淺析Flutter AbsorbPointer 與 IgnorePointer的區(qū)別

    Flutter是Google一個(gè)新的用于構(gòu)建跨平臺(tái)的手機(jī)App的SDK。這篇文章主要介紹了Flutter AbsorbPointer 與 IgnorePointer的區(qū)別,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Android使用Profiler查看應(yīng)用內(nèi)存分析的操作步驟

    Android使用Profiler查看應(yīng)用內(nèi)存分析的操作步驟

    內(nèi)存分析是Profiler中的一個(gè)組件,可以幫助我們識(shí)別可能會(huì)導(dǎo)致應(yīng)用卡頓、凍結(jié)甚至崩潰的內(nèi)存泄露和內(nèi)存抖動(dòng),本文小編將給大家介紹一下Android使用Profiler查看應(yīng)用內(nèi)存分析的操作步驟,需要的朋友可以參考下
    2023-10-10
  • Android 消息分發(fā)使用EventBus的實(shí)例詳解

    Android 消息分發(fā)使用EventBus的實(shí)例詳解

    這篇文章主要介紹了Android 消息分發(fā)使用EventBus的實(shí)例詳解的相關(guān)資料,在項(xiàng)目中用了許多Handler和broadcast導(dǎo)致代碼冗余,顯得雜亂無章,這里使用EventBus來實(shí)現(xiàn)相同的功能,需要的朋友可以參考下
    2017-07-07
  • AndroidManifest.xml中含蓋的安全問題詳解

    AndroidManifest.xml中含蓋的安全問題詳解

    這篇文章主要介紹了AndroidManifest.xml中含蓋的安全問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Android Studio導(dǎo)入項(xiàng)目不支持的兩種解決方式

    Android Studio導(dǎo)入項(xiàng)目不支持的兩種解決方式

    這篇文章主要介紹了Android Studio導(dǎo)入項(xiàng)目不支持的兩種解決方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Android開發(fā)之permission動(dòng)態(tài)權(quán)限獲取詳解

    Android開發(fā)之permission動(dòng)態(tài)權(quán)限獲取詳解

    這篇文章主要為大家詳細(xì)介紹了Android開發(fā)之permission動(dòng)態(tài)權(quán)限獲取,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 在Android中動(dòng)態(tài)添加Panel框架的實(shí)現(xiàn)代碼

    在Android中動(dòng)態(tài)添加Panel框架的實(shí)現(xiàn)代碼

    項(xiàng)目經(jīng)常會(huì)有這種需求,就是想動(dòng)態(tài)的在某個(gè)界面上添加一個(gè)Panel。比如,有一個(gè)按鈕,點(diǎn)擊后會(huì)顯示下拉菜單式的界面。這種需求,就屬于動(dòng)態(tài)添加一個(gè)Panel。需求多了,就要研究是否可以抽象出通用的框架代碼,以方便開發(fā),所以就有了以下內(nèi)容
    2013-05-05
  • Flutter實(shí)現(xiàn)給圖片添加涂鴉功能

    Flutter實(shí)現(xiàn)給圖片添加涂鴉功能

    這篇文章主要介紹了利用Flutter實(shí)現(xiàn)給圖片添加涂鴉功能,文中通過代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • Android懸浮窗按鈕實(shí)現(xiàn)點(diǎn)擊并顯示/隱藏多功能列表

    Android懸浮窗按鈕實(shí)現(xiàn)點(diǎn)擊并顯示/隱藏多功能列表

    這篇文章主要為大家詳細(xì)介紹了Android懸浮窗按鈕實(shí)現(xiàn)點(diǎn)擊并顯示/隱藏多功能列表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android跨進(jìn)程拋異常的原理的實(shí)現(xiàn)

    Android跨進(jìn)程拋異常的原理的實(shí)現(xiàn)

    這篇文章主要介紹了Android跨進(jìn)程拋異常的原理的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11

最新評(píng)論

阿城市| 桑植县| 太仆寺旗| 政和县| 西平县| 陵水| 德化县| 靖安县| 崇仁县| 合肥市| 青阳县| 丰镇市| 呼和浩特市| 巴塘县| 册亨县| 和田县| 邵东县| 祁门县| 台湾省| 平远县| 万安县| 外汇| 丁青县| 固始县| 朝阳县| 深州市| 合江县| 富锦市| 石泉县| 政和县| 莱州市| 景宁| 于都县| 乐亭县| 梁山县| 鄱阳县| 青田县| 施甸县| 健康| 灌云县| 田林县|