zoukankan      html  css  js  c++  java
  • 10-2【封装组件出神入化】基于TextField实现顶部SearchBar-1



    没有内容的时候,显示的是一个话筒的按钮、左边是一个搜索的图标。


    首页的样式

    自定义组件

    根据localNav改也给名字

    叫做search_bar.dart


    searchBar是有状态的,需要和用户去做交互。

    定义这些参数,并实现构造方法。SearchBarType是枚举类型。


    文本框需要用到TextField。TextField需要给它设置一个Controller。这个Controller我们这里就用TextEditingController
    TextEditingController可以获取搜索框内文字的变化。
    showClear是否显示差号那个按钮。

    要实现的效果是语音输入后,把文字带到搜索页的文本框上。所以就需要defaultText来设置默认的文字。

    在builder里面,根据当前输入框的不同类型样式,设置不同的样式。
    首先判断是不是SearchBarType.noemal

    这是normal的样子。

    输入了文字的样式是这样的

    normalSearch的样式

    这里用Row布局,左边是个返回按钮,右边是搜索的按钮。中间是输入框

    在搜索页内,是没有返回按钮的。

    所以我们根据是否隐藏左边的按钮的属性来判断。
    这里我们先提供一个方法。包裹我们的child和加点击事件。

    然后用_WrapTap方法包裹。 先设置左边的返回按钮的样式。

    中间显示输出框,能够自适应宽度所以这里用Expanded。然后flex设置为1

    child放一个输入框

    最右边的搜索按钮

    输入框的实现

    包括底部的背景图,框的圆角。右边话筒图标。左边搜索图标。输入内容后最右边有个关闭按钮。

    左边的Icon样式设置

    中间输入框部分,用Expand然后宽度自适应 Flex:1、按钮的事件是onChange方法

    有内容时候就显示差号,无内容时候就显示一个话筒的图标。

    设置样式。

    如果是首页的话,样式如下:

    这个输入框是不可以点击的。做的一个假的



    设置文本框的样式

    总结

    代码先不要运行,下节课继续完善。
     

    结束

  • 相关阅读:
    汇编语言2
    汇编语言1
    PE结构对照表
    PE详解之区块表(节表)和区块(节)(PE详解04)
    PE详解之IMAGE_OPTIONAL_HEADER32 结构定义即各个属性的作用(PE详解03)
    PE详解之IMAGE_NT_HEADERS结构定义即各个属性的作用(PE详解02)
    PE详解之IMAGE_DOS_HEADER结构定义即各个属性的作用(PE详解01)
    8088汇编指令大全
    修改寄存器绕过保护
    python shuffle 文本行/Python 打乱txt文本顺序
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/12213272.html
Copyright © 2011-2022 走看看