展开

关键词

Flutter ListView 拖拽排序了解一下

前面我们对于 ListView 的操作讲过 Flutter 滑动删除最佳实践,那现在我们来了解一下 ListView 的拖拽排序。 效果如下: ? 简单翻译如下: 用户可以通过拖动来重新排序的列表。 该类适用于少量 children 的页面,因为构造列表需要为每一个 children 执行操作,而不只是可见的 children。 ', ); 了解一下各个参数: •header:是一个不参与拖动排序的 Widget•children:不用多说,列表项•onReorder:见名知意,重新排序后的回调•scrollDirection: newIndex, temp); }); 1.先判断是向上还是向下拖拽2.如果是向下拖拽,那么 newIndex 会多加一个,我们把它减掉3.然后我们删除旧数据并保存它4.最后在新的 index 上插入 ListView 的拖拽排序和删除 既然前面说到了 ListView 的删除,那这里也必须把它俩组合起来了: ?

1.9K40

Android开发实现可拖动排序ListView功能【附源码下载】

本文实例讲述了Android开发实现可拖动排序ListView功能。分享给大家供大家参考,具体如下: 一、上图 ? 二、简述 1、需要实现的效果是长按右侧可拖动部分布局实现列表项的拖动排序 2、当点击列表项前面的单选按钮时,在该条目右侧显示删除图标,点击该图标删除当前条目。 三、实现思路 借助github上的开源代码drag-sort-listview-master加以改造。 import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.widget.ListView (mProductListAdapter); mDslvProductList.setDropListener(onDrop); mDslvProductList.setChoiceMode(ListView.CHOICE_MODE_SINGLE

46820
  • 广告
    关闭

    【玩转 Cloud Studio】有奖调研征文,千元豪礼等你拿!

    想听听你玩转的独门秘籍,更有机械键盘、鹅厂公仔、CODING 定制公仔等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    解决ListView嵌套ListView遇到的问题

    Listview嵌套会造成的问题主要是子listview的高度错误导致内容不能正常显示完,解决这个问题,我个人第一个想法就是重新计算子listview的高度,代码如下: private void setListViewHeightBasedOnChildren (ListView listView) { if(listView == null) return; ListAdapter listAdapter = listView.getAdapter int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView (); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); listView.setLayoutParams(params); } 父listview的adapter中getview方法调用 RelationAdapter relationAdapter

    51460

    listview入门

    Listview组件非常重要,4分之一的时间都是在搞这个,还是通过上一节的数据库,写个for循环,插入50条数据。 把命名空间放在SorollView里,指定宽度和高度都是填充父窗体 当数据量比较大时,这样直接new出无数对象很消耗资源,应该是在滑动过程中动态new出组件对象,超出视线就销毁掉,这个时候引入了新的控件ListView 获取ListView对象,通过findViewById()方法,调用ListView对象的setAdapter(adapter)方法设置数据绑定到ListView,参数是一个ListAdapter接口类型 super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView lv=(ListView) findViewById(R.id.mylist); PersonDao dao=new PersonDao(this); persons=

    23730

    Android listview

    ListView是Android中最常用的控件之一,几乎所有的应用程序都会用到它,因此学会运用它很重要。下面我们从一个例子中去理解ListView的用法,先看一下我们这个例子的项目结构图 ? ListView listView=findViewById(R.id.list_view); listView.setAdapter(adapter); // 为ListView注册一个监听器,当用户点击了ListView中的任何一个子项时,就会回调onItemClick()方法 // 在这个方法中可以通过position参数判断出用户点击的是那一个子项 适配器的类型,即是数据传入到ListView中的类型。 总结: 使用ListView,关键是在适配器与适配器的类型上,这两个方面掌握了,基本就可以定制出属于自己的ListView界面了。

    21820

    初识ListView

    一、了解ListView 在Android开发中,ListView是比较常用的控件,它以列表的形式显示具体内容,并且能够根据数据的长度自适应显示。 一旦在程序中获得了 ListView之后,接下来就需要为ListView设置它要显示的列表项了。 二、ListView简单示例 接下来通过一个简单的示例程序来学习ListView的常见用法。 从上述示例程序发现,使用数组创建ListView非常简单,但这种ListView 能定制的内容很少,甚至连每个列表项的字号大小、颜色都不能改变。 如果想对ListView的外观、行为进行定制,就需要把ListView作为AdapterView使用,通过Adapter控制每个列表项的外观和行为。

    43650

    ListView详解

    只是字符串就用ArrayAdapter,用到图文混排的就用自定义的 2.listview的优化(convertView,viewholder) 首先来了解一下ListView的工作原理。 ListView 针对每个item,要求 adapter“返回一个视图” (getView),也就是说ListView在开始绘制的时候,系统首先调用getCount()函数,根据他的返回值得到ListView ); listView = (ListView) findViewById(R.id.listView); initData(); loadView = 翻译过来就是: 你不应该同时使用ScrollView 和ListView,因为ListView负责自己的垂直滚动。 最重要的是,这样优化ListView来处理大的列表的最大缺陷是,因为它迫使ListView显示整个项目列表填满由ScrollView 提供的空间。

    37860

    ListView专题

    ListView专题 1.ListView属性: fadingEdge属性 ListView上边和下边有黑色的阴影,android : fadingEdge = "none"后就不会有阴影了 scrollbars android:drawSelectorOnTop = "false" 点击某条记录不放,颜色会在记录的后面,成为背景色,但是记录内容的文字是可见的 2.ListView.setEmptyView( )没有效果 有时调用setEmptyView没有效果,这是因为我们设置的这个EmptyView必须和该ListView在同一个布局体系中 如:下面这样的代码有些时候会没有效果 View loadingView 当ListView通过addHeaderView添后,在onItemClick中的position会加上Header的个数,所以这时候在获取数据的时候要对位置进行处理。 mAutoCircleViewPager = (ViewPager) mHeaderView.findViewById(R.id.vp_auto_circle); //addHeaderView要在ListView

    39880

    ListView 的简单用法及定制ListView界面

    简单效果: 升级版效果: 如何从获得listview上item的内容 详见:https://blog.csdn.net/qq_43377749/article/details/85004025 中遇到的问题部分 布局实现: 有一个 listview 用于显示列表信息 一个 edit 进行输入 一个 button 负责发送 <?xml version="1.0" encoding="utf-8"? --使用红色得分割条--> <ListView android:id="@+id/list1" android:layout_width= android:dividerHeight="2px" android:headerDividersEnabled="false"> </ListView super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); list01 = (ListView

    18330

    Flutter ListView 局部刷新数据、ListView点赞收藏

    x1】微信公众号的每日提醒 随时随记 每日积累 随心而过 【x2】各种系列的视频教程 免费开源 关注 你不会迷路 【x3】系列文章 百万 Demo 随时 复制粘贴 使用 *** 本文章实现的是 ListView ; TestBean({this.name, this.isCollect}); } 然后就是 ListView 实现的主页面,定义如下: ///ListView 局部数据更新使用 Demo class 缓存区域的就会被销毁,在本 Demo 本测试模拟器中,ListView中始终是绘制的 16 个子 Item。 中,这样也能实现ListView 中一个Item中不同的Widget 刷新不同的区域。 当然 也可以在 ListView 的Item 中使用 Stream 、Provider 、BloC等等,小编这里也有说明点击查看 2.2 状态如何保存的 ???

    1.3K41

    ListView下拉刷新

    repositories {         jcenter()         maven { url "https://maven.google.com" }     } } 在xml布局中:  <listview.huanglinqing.com.refreshlistview.Relistview "         android:layout_width="match_parent"         android:layout_height="wrap_content">     </listview.huanglinqing.com.refreshlistview.Relistview

    39420

    ListView&GirdView

    好的吧,我们还是来看下这两个Widget的用法吧 ListView ---- ListView就是我们常见的列表组件,在平时的应用开发中十分的常见,无论你做的是什么类型的应用都会多多少少会用到ListView ,所以要好好看下这篇文章哦 还是先来看下listView的构造方法: ListView({ Key key, Axis scrollDirection: Axis.vertical,//滚动方向 bool 那么,我们可以尝试下ListView.builder()和ListView.custom()。 ListView.builder()和ListView.custom()的用法基本相同,只不过custom可以根据自己的需要控制Item显示方式,如Item显示大小。 我们今天来看下ListView.builder() ListView.builder({ Key key, Axis scrollDirection: Axis.vertical, bool reverse

    26320

    popupwindow和listview

    android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent " /> </LinearLayout> 再贴出的是listview显示的每一项item.xml <?  = (ListView) view.findViewById(R.id.listview);           listView.setAdapter(adapter);   //自适配长 为了让PopupWindow能够自适应ListView的内容,需要在listview_demo.xml添加一项: <?xml version="1.0" encoding="utf-8"? 因为TextView才是自适配的砝码,要在text中写上你的listView中最长的那个字符。上述demo中,所有显示的文字{中国,加油,钓鱼岛是中国的,!!!}中”钓鱼岛是中国的“是最长的。

    901100

    RN实现ListView

    marginRight: 30, } , txt: { width: width * 0.6, } , }); (2)生成整个listview import { AppRegistry, StyleSheet, Text, View, TouchableOpacity, Image, ListView constructor(props) { super(props); this.state = { dataSource: new ListView.DataSource }; render() { return ( <View style={styles.container}> <ListView

    60990

    listview滑动删除

    今天还是给大家带来自定义控件的编写,自定义一个ListView的左右滑动删除Item的效果,这个效果之前已经实现过了,有兴趣的可以看下Android 使用Scroller实现绚丽的ListView左右滑动删除 当item的透明度不为0的时候,我们抬起手指Item会回到起始位置,这样我们就知道拖动到什么位置item会删除,什么位置Item不删除,用户体验更好了,还有一个效果,就是我们滑动删除了item的时候,ListView 接下来就是手指在屏幕上面滑动的处理方法handleActionMove(),这个方法就稍微的复杂些,我们需要根据手指在X轴的滑动距离和Y轴的滑动距离来判断是ListView item的水平滑动还是ListView ListView的item的时候,会伴随着item的点击事件,这不是我们想要的效果,所以当Item滑动的时候我们需要取消ListView Item的点击事件 3. 控件,接下来就是主界面的代码编写,跟平常的ListView使用一样,但是我们需要设置OnDismissCallback()监听,在 onDismiss()中删除该位置对于的数据,刷新ListView

    72470

    ListView初体验

    垂直列表 ListView( children: <Widget>[ //ListTile是ListView子元素的一个内嵌模式,其类似于OC中的内嵌固定模式的cell 列表子元素 padding: EdgeInsets.all(10), //设置ListView的内边距 ); ListView的children属性的值是一个Widget数组,该数组里面装载的就是 ListView里面展示的各个子元素。 ListTile是Flutter内置的用于作为ListView子元素的widget,其类似于OC中的内置cell。 Container可用于设置ListView各个子元素之间的间隔。 实际上,针对固定格式的子元素,ListView给我们提供了ListView.builder 方法,用于遍历处理每一个子元素,代码如下: ListView.builder( itemBuilder

    24010

    ReactNative-ListView

    这只是一个简单的listView的小demo 初始化项目之后,index.ios.js代码如下 /** * Sample React Native App * https://github.com/ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, ListView class DemoApp extends Component { constructor(props){ super(props); var ds = new ListView.DataSource dataSource: ds }; } render() { return ( <View style={styles.container}> <ListView _renderRow(rowData)} contentInset= > </ListView> </View>

    35730

    listview优化(中)

    FileCache(context);           executorService = Executors.newFixedThreadPool(5);       }   // 当进入listview    import android.widget.ArrayAdapter;   import android.widget.ImageView;   import android.widget.ListView  listView;   private AsyncImageLoader asyncImageLoader;   public ImageAndTextListAdapter(Activity  activity, List<ImageAndText> imageAndTexts, ListView listView) {   super(activity, 0, imageAndTexts );   this.listView = listView;               asyncImageLoader = new AsyncImageLoader();

    366100

    android入门 — ListView

    ListView允许用户通过上下滑动的方式将屏幕外的数据滚动到屏幕中,同时原来的数据会滚动出屏幕。 1.ArrayAdapter的用法 ①在布局中编写代码(添加ListView标签) <? 可以看出整个界面全部被listview占据。 对象 ListView listView = (ListView)findViewById(R.id.list_item1); //将适配器关联到ListView listView.setAdapter(adapter); } }   ListView显示的数据一般都是从数据库中拿到的数据,在这里使用的是一个简单的数组来模拟这些数据。    最后调用ListView的setAdapter()方法,将构建好的适配器对象传递进去。这样就使得ListView和数据之间的关联建立起来了。 ?

    69380

    相关产品

    • 腾讯云搜

      腾讯云搜

      云端全托管的搜索服务,支持从数据导入、检索串识别,搜索结果获取与排序,到数据运营全过程的一站式服务。帮助用户快速构建网站搜索、APP搜索、企业搜索等服务。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券