GVKun编程网logo

过滤搜索中的 Flutter App 显示列表(flutter搜索功能)

2

如果您想了解过滤搜索中的FlutterApp显示列表和flutter搜索功能的知识,那么本篇文章将是您的不二之选。我们将深入剖析过滤搜索中的FlutterApp显示列表的各个方面,并为您解答flutt

如果您想了解过滤搜索中的 Flutter App 显示列表flutter搜索功能的知识,那么本篇文章将是您的不二之选。我们将深入剖析过滤搜索中的 Flutter App 显示列表的各个方面,并为您解答flutter搜索功能的疑在这篇文章中,我们将为您介绍过滤搜索中的 Flutter App 显示列表的相关知识,同时也会详细的解释flutter搜索功能的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

过滤搜索中的 Flutter App 显示列表(flutter搜索功能)

过滤搜索中的 Flutter App 显示列表(flutter搜索功能)

如何解决过滤搜索中的 Flutter App 显示列表

我从数据库中得到一个列表。由于列表可能包含 100 多个元素,我想添加一个功能,以便能够通过匹配字符串来过滤内容。我只想将图标添加到应用栏,然后单击展开以进行搜索。

这是我的代码

import ''package:Flutter/material.dart'';
import ''package:cloud_firestore/cloud_firestore.dart'';
import ''package:google_fonts/google_fonts.dart'';
import ''package:smart_traveller/Pages/livebus.dart'';
import ''package:marquee/marquee.dart'';
import ''package:search_app_bar_page/search_app_bar_page.dart'';

class Routes extends StatelessWidget {
  
  
  Widget build(BuildContext context) {
    return Scaffold(
      
      body: DefaultTabController(
        length: 2,child: Scaffold(
          appBar: AppBar(
            
              bottom: TabBar(
                tabs: [
                  Tab(
                    icon: Icon(Icons.star),text: "Favourites",),Tab(
                    icon: Icon(Icons.directions_bus),text: "Bus",],title: 
                  Text(
                    "Routes",style: GoogleFonts.pacifico(
                      textStyle: TextStyle(
                          color: Colors.white,letterSpacing: .5,fontSize: 20),centerTitle: true,backgroundColor: Colors.blue,leading: IconButton(
              icon: Icon(Icons.arrow_back,color: Colors.white),onpressed: () => Navigator.of(context).pop(),body: TabBarView(
            children: [
                 //Favourites
              Center(
                  child: Container(
                      child: Column(
                mainAxisAlignment: MainAxisAlignment.center,crossAxisAlignment: CrossAxisAlignment.center,children: [
                  Padding(
                    padding: const EdgeInsets.only(bottom: 8.0),child: Image.asset(
                      ''assets/images/train.gif'',width: 250,height: 400,Text(
                    ''Add Favourite Routes'',style: GoogleFonts.pacifico(
                      textStyle: TextStyle(
                          color: Colors.green,))),//Bus-----------------------------------------
StreamBuilder(
                stream:
                    FirebaseFirestore.instance.collection(''routes'').snapshots(),builder: (context,snapshot) {
                  if (!snapshot.hasData)
                    return Center(child: CircularProgressIndicator());

                  return ListView(
                    children: snapshot.data.docs.map<Widget>((document) {
                      return Center(
                        child: Container(
                          margin: const EdgeInsets.fromLTRB(20,20,15),height: 50,child: RaisedButton(
                            textColor: Colors.white,color: Colors.blue,shape: RoundedRectangleBorder(
                              borderRadius: BorderRadius.circular(18.0),side: BorderSide(color: Colors.blue),onpressed: () {
                              var id = document.id;
                              RouteNumber.route = id;
                              RouteNumber.routeName = ''Route'';
                              Navigator.push(
                                  context,MaterialPageRoute(
                                      builder: (context) => LiveBus()));
                            },child: Align(
                                alignment: Alignment.center,child: Padding(
                                  padding: const EdgeInsets.only(top: 8.0),child: Row(
                                    children: <Widget>[
                                      Expanded(
                                        child: Marquee(
                                          text: document[''number''] +
                                              " ⋮ " +
                                              document[''name''],style: TextStyle(fontSize: 22),scrollAxis: Axis.horizontal,crossAxisAlignment:
                                              CrossAxisAlignment.start,blankSpace: 20.0,veLocity: 50.0,)
                                    ],)),);
                    }
                        //

                        ).toList(),);
                },);
  }
}

这就是我希望我的应用程序的样子

我找不到可以在这里实现的合适的包

enter image description here

.NET MVC+ EF+LINQ 多表联查 VIEW 显示列表

.NET MVC+ EF+LINQ 多表联查 VIEW 显示列表

1.VIEW 页面显示代码

<link href="~/Content/bootstrap.css" rel="stylesheet" />


    <div class="well">
        <table class="table">
            <tr>
                <th>用户名</th>
                <th>地址</th>
                <th>订单编号</th>
                <th>城市代号</th>
                <th>时间</th>
                <th>订单状态</th>
            </tr>
           
            @foreach (var item in ViewBag.dyObject)
            {
                <tr>
                    <td>@item.UserName </td>
                    <td>@item.LocalAddress </td>
                    <td>@item.BargainOrderCode </td>
                    <td>@item.CityCode </td>
                    <td>@item.UpdateTime </td>
                    <td>@item.OrderStatus </td>

                </tr>

            }
        </table>

    </div>

2、Controller 控制器

public ActionResult UserOrder()
        {
           
            #region  EF+linq 多表联查VIEW显示列表

            var userOrdeList = (from user in _DbContext.UserInfo_tests
                                join order in _DbContext.TRA_BargainOrders on user.Id
              equals order.UserID

                                select new
                                {

                                    uname = user.UserName,
                                    uaddress = user.LocalAddress,
                                    bargainOrderCode = order.BargainOrderCode,
                                    cityCode = order.CityCode,
                                    updateTime = order.UpdateTime,
                                    orderStatus = order.OrderStatus
                                }
                                ).ToList();
            List<dynamic> userList = new List<dynamic>();
            foreach (var data in userOrdeList.ToList())
            {
                dynamic dyObject = new ExpandoObject();
                dyObject.UserName = data.uname;
                dyObject.LocalAddress = data.uaddress;
                dyObject.BargainOrderCode = data.bargainOrderCode;
                dyObject.CityCode = data.cityCode;
                dyObject.UpdateTime = data.updateTime;
                dyObject.OrderStatus = data.orderStatus;
                userList.Add(dyObject);
            }
            ViewBag.dyObject = userList;

            return View();

#endregion

                  }

 3、实体 model 和数据库操作在此省略

ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j

ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j

如何解决ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j

我正在Rails上执行此应用程序,页面加载正常,但在控制台中显示:

Started GET "/vendor/assets/stylesheets/bootstrap.min.css" for ::1 at 2020-08-17 09:09:51 -0500

Started GET "/vendor/assets/javascripts/bootstrap.min.js" for ::1 at 2020-08-17 09:09:51 -0500
ActionController::RoutingError (No route matches [GET] 
"/vendor/assets/stylesheets/bootstrap.min.css"):
ActionController::RoutingError (No route matches [GET] 
"/vendor/assets/javascripts/bootstrap.min.js"):

在我的供应商文件夹中,我同时拥有文件夹,javascript和样式表,并分别位于各自的bootsrtrap.min中。 即使在application.html.erb中,我也有以下内容:

  <link href="vendor/assets/stylesheets/bootstrap.min.css" rel="stylesheet">
  <%= csrf_Meta_tags %>
  <%= stylesheet_link_tag    ''application'',media: ''all'',''data-turbolinks-track'': ''reload'' %>
  <%= javascript_include_tag ''application'',''data-turbolinks-track'': ''reload'' %>

</head>
<body>

  <!-- Navigation -->
  <nav>
    <div>
      <ahref="#">Instagram Clone</a>
      <buttontype="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
        <span></span>
      </button>
      <divid="navbarResponsive">
        <ul>
          <li>
            <ahref="#">Home
              <span>(current)</span>
            </a>
          </li>
          <li>
            <ahref="#">About</a>
          </li>
          <li>
            <ahref="#">Services</a>
          </li>
          <li>
            <ahref="#">Contact</a>
          </li>
        </ul>
      </div>
    </div>
  </nav>

  <!-- Page Content -->
  <div>
    <div>
      <div>
        <%= yield %>
      </div>
    </div>
  </div>

  <!-- Bootstrap core JavaScript -->
  <!--<script src="vendor/jquery/jquery.slim.min.js"></script>-->
  <script src="vendor/assets/javascripts/bootstrap.min.js"></script>
    
</body>
</html>

在js和CSS这两个应用程序文件中,我都放置了“ require bootsrtrap.min”,即使该错误仍然出现在控制台中。 会是什么?

解决方法

RoR不使用目录作为文件夹结构指示。因为有资产装载者。您应该将5s或更少的css导入application.css中,并将js导入application.js中。并使用自己的助手添加捆绑文件:

1。用纱安装靴子

yarn add bootstrap @popperjs/core jquery

npm i bootstrap @popperjs/core jquery

栏位不超过5

2。在Assets Pipeline中导入文件

app / assets / stylesheets / application.css:

//...
require bootstrap/dist/css/bootstrap.min
//...

但是,如果需要,我建议使用SCSS并仅导入所需的样式。

app / assets / javascript / application.js:

//...
//= require jquery
//= require @popperjs/core
//= require bootstrap/dist/js/bootstrap.min
//...

3。在布局中导入资产

app / views / layout / application.html.erb:

<head>
...
  <%= stylesheet_link_tag ''application'',media: ''all'' %>
</head>
<body>
...
  <%= javascript_include_tag ''application'' %>
</body>

使用webpack滚动6

2。在application.scss和application.js中导入Bootstrap

app / javascript / stylesheets / application.scss:

//...
import ''bootstrap''
//...

app / javascript / packs / application.js:

import ''jquery''
import ''popper.js''
import ''bootstrap''
import ''../stylesheets/application''

3。在布局中导入捆绑包

<head>
...
  <%= stylesheet_pack_tag ''application'',media: ''all'',''data-turbolinks-track'': ''reload'' %>
  <%= javascript_pack_tag ''application'',''data-turbolinks-track'': ''reload'' %>
</head>

之后,您应该可以在所有应用程序中使用引导程序!

,

[解决方案]因此,在我的HTML(application.html.erb)内部,我有两个对js和css文件的调用:

<script src="assets/javascripts/bootstrap.min.js"></script>
  <%= javascript_include_tag ''application'',''data-turbolinks-track'': ''reload'' %>       
<link href="assets/stylesheets/bootstrap.min.css" rel="stylesheet">
  <%= csrf_meta_tags %>
  <%= stylesheet_link_tag    ''application'',''data-turbolinks-track'': 
  ''reload'' %>

正如您在上面看到的那样,在使用javascript的情况下,我有一个使用脚本的调用,而另一个使用了的调用,两者都造成了问题,所以您只需要评论一个,我就对该脚本进行评论对于我的java文件和CSS文件,一个。 像这样:

  <!--<link href="assets/stylesheets/bootstrap.min.css" rel="stylesheet">-->
    <!--<script src="assets/javascripts/bootstrap.min.js"></script>-->

对我来说,解决了这个问题,我真的尝试了所有事情,这就是解决方案哈哈。

angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在

angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在

我在角度创建新项目时面临问题.
当我运行新的myapp命令时,我得到以下命令

新的你好

Error: Path "/app/app.module.ts" does not exist.
Path "/app/app.module.ts" does not exist.

谁能帮我吗???

解决方法

这是解决方案

Please make sure that your new folder have write permission

如果您使用的是ubuntu,请将以下命令运行到该文件夹

sudo chmod 644 -R foldername

然后运行新的appname

并检查您的节点版本

APP 自动化 01 - 基础操作 API-UIautomatorviewer-APP 定位 - 元素等待 - APP 模拟手势高级操作

APP 自动化 01 - 基础操作 API-UIautomatorviewer-APP 定位 - 元素等待 - APP 模拟手势高级操作

--- 恢复内容开始 ---

 先连接手机:

adb connect 127.0.0.1:7555

APP 基础操作 API

前置代码

# server 启动参数

desired_caps = {}
desired_caps[''platformName''] = ''Android''
desired_caps[''platformVersion''] = ''5.1''
desired_caps[''deviceName''] = ''192.168.56.101:5555''
desired_caps[''appPackage''] = ''com.android.settings''
desired_caps[''appActivity''] = ''.Settings''
 
# 解决输入中文
desired_caps[''unicodeKeyboard''] = True
desired_caps[''resetKeyboard''] = True

# 声明driver对象
driver = webdriver.Remote(''http://127.0.0.1:4723/wd/hub'', desired_caps)
  1. 安装 apk 到手机

    driver.install_app(''app路径'')
  2. 手机中移出 apk

    driver.remove_app(’APP包名‘)
  3. 判断 app 是否已经安装

    driver.is_app_install(’APP包名‘)

     

  4. 发送文件到手机

      import base64
    with open("./push07.txt","r",encoding="utf-8") as f:
        data=str(base64.b64encode(f.read().encode("utf-8")),"utf-8")
        driver.push_file("/sdcard/push07.txt",data)
    参数:
        /sdcard/push07.txt:手机设备上的路径(例如:/sdcard/a.txt)
        data:文件内数据,要求base64编码
        Python3.x中字符都为unicode编码,而b64encode函数的参数为byte类型,需要先转码;
          生成的数据为byte类型,需要将byte转换回去

     

  5. 从手机中拉取文件

    import base64
    data = driver.pull_file(path) # 返回数据为base64编码
    print(str(base64.b64decode(data),''utf-8'')) # base64解码
    参数:
        path: 手机设备上的路径

     

  6. 获取当前屏幕内元素结构

    driver.page_source
    作用:返回当前页面文档,判断特点元素是否存在

 

手机控件查看工具 UIautomatorviewer

作用:用来扫描和分析 Android 应用程序的 UI 控件的工具.

 

APP 元素定位操作

name Value
id id 属性值
Class class 属性值
Xpath xpath 表达式

文字定位:driver.find_element_by_xpath ("//*[@text='' 定位文字 '']")

driver.find_element_by_xpath ("//*[contains (@text,'' 部分文字 '')]")

 

WebDriverWait 显示等待操作

在一个超时时间范围内,每隔一段时间去搜索一次元素是否存在,
如果存在返回定位对象,如果不存在直到超时时间到达,报超时异常错误。
方法:WebDriverWait(driver, timeout, poll_frequency).until(lamda x:x.find_element_by_id(''id属性值''))
  参数:
      1.driver:手机驱动对象
      2.timeout:搜索超时时间
      3.poll_frequency:每次搜索间隔时间,默认时间为0.5s
      4.method:定位方法(匿名函数)

 

APP 元素信息操作 API

  1. 点击元素 .click ()

  2. 发送数据到输入框 .send_keys ()

  3. 清空输入框内容 .clear ()

  4. 获取元素的文本内容 .text

  5. 获取元素的属性值 .get_attribute (value) #value 是元素属性名

  6. 获取元素在屏幕上的坐标 .location

  7. 获取启动名和包名

    获取包名方法:driver.current_package
    获取启动名:driver.current_activity

     

APP 元素事件操作 API

  1. swip 滑动事件

    从一个坐标位置滑动到另一个坐标位置
    # 滑动持续5秒的时间
    driver.swipe(188,659,148,248,5000)

     

  2. scroll 滑动事件

     driver.scroll(开始元素,结束元素)

     

  3. drag 拖拽事件

    driver.drag_and_drop(el1,el2)
  4. 应用置于后台

APP放置后台,模拟热启动
# app置于后台5s后,再次展示当前页面
driver.background_app(5)

 

APP 模拟手势高级操作

TouchAction是AppiumDriver的辅助类,主要针对手势操作,比如滑动、长按、拖动等,
原理是将一系列的动作放在一个链条中发送到服务器,服务器接受到该链条后,解析各个动作,逐个执行。

⚠️所有手势都要通过执行函数才会运行.
  1. 轻敲操作

    方法:tap(element=None, x=None, y=None)
    方法:perform() # 发送命令到服务器执行操作
  2. 按的操作

    方法:press(el=None, x=None, y=None)
    方法:release() # 结束动作,手指离开屏幕
    再 preform()

     

  3. 等待操作

    wait(ms=0)

     

  4. 手指长按操作

    long_press(el=None, x=None, y=None, duration=1000)
    默认为1000毫秒

     

  5. 手指移动操作

     方法:move_to(el=None, x=None, y=None).perform()
    参数:
        1.el:定位的元素
        2.x:相对于前一个元素的X轴偏移量
        3.y:相对于前一个元素的Y轴偏移量

     

     

 

 

--- 恢复内容结束 ---

我们今天的关于过滤搜索中的 Flutter App 显示列表flutter搜索功能的分享就到这里,谢谢您的阅读,如果想了解更多关于.NET MVC+ EF+LINQ 多表联查 VIEW 显示列表、ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j、angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在、APP 自动化 01 - 基础操作 API-UIautomatorviewer-APP 定位 - 元素等待 - APP 模拟手势高级操作的相关信息,可以在本站进行搜索。

本文标签:

上一篇如何在同一订阅组中使用 Apple In-App Purchase 对订阅计划进行排名?(app store订阅项目)

下一篇如何将node app打包成windows exe app(node打包apk)