在 App 的开发过程中,ListView 控件是比较常用的控件之一.掌握它的用法,能帮助我们在一定程度上提高开发效率.本文将会介绍 ListView 的一种用法--获取并设置 ListView 的滚动位置,以及获取滚动位置处的项目.这里多说一句,由于这个描述有点,所以本文的标题实在不好起. 举个例子,如果你正在开发的应用有这样一个需求,当用户从一个列表页(包括 ListView 控件)返回到前一页面时,你需要得到用户在浏览 ListView 中的内容到哪个位置以及哪一项了,以便告诉用户最近浏览…
Windows 8.1 与Windows Phone 8.1的UAP应用,终于在Windows 10上统一到了UWP之下.原来3个不同的project也变为一个.没有了2套xaml页面,我们需要用同一个页面适应所有的设备.更麻烦的是在Desktop设备上,我们的应用窗口是可以随意拖动大小的.这对我们的UI布局提出了更高的要求.当然我们也有了新的工具来应对: VisualState中增加了StateTriggers,通过不同的条件触发Trigger并自动切换到对应的VisualState,还能加入…
还是在持续的开发一款Windows10的应用中,除了上篇博客讲讲我在Windows10(uwp)开发中遇到的一些坑,其实还有很多不完善的地方,比如(UIElement.Foreground).(GradientBrush.GradientStops)[1].(GradientStop.Offset)这种设置无法生效,还有RelativePanel内的元素不能自动的适应大小,要去手动控制宽高度,以及窗口在靠边的时候一些尺寸上的错误等等.虽然是WPF技术之后的延续,但是很多地方还是要小心仔细的处理,…
ListView是Android中最常用的控件之一,随着时代发展,RecyclerView有取代它的趋势,但是在一些老代码中,ListView依然扮演着重要的作用.项目中遇到一个需求,需要监听ListView在滑动时滑动的Y轴坐标.这个需求在RecyclerView中computeVerticalScrollOffset方法完成了这项功能.只需要在OnScrollListener的onScrolled方法中,调用computeVerticalScrollOffset即可在滑动时获得Y坐标.然而,…
如果在应用中,如果想要给app 添加模糊滤镜,可能第一想到的是第三方类库,比如 Win2d.lumia Imaging SDK .WriteableBitmapEx,不可否认,这些类库功能强大,效果也挺多的.不足就是增加了生成包尺寸,由于增加了相应 dll  的引用,在 app运行时也会增加内存占用.如果只使用一种滤镜效果,建议直接添加几十行代码自己实现,这样开发.维护成本都会很少.并且由于 .net native 使得 uwp 的运算速度与 C++算法的运行速度没有差别了. 这里只讨论高斯模糊…
RecyclerView 得宠之前,ListView 可以说是我们用的最多的组件.之前一直没有好好看看它的源码,知其然不知其所以然. 今天我们来窥一窥 ListView 中的观察者模式. 不熟悉观察者模式的可以看看这篇 观察者模式 : 一支穿云箭,千军万马来相见 巩固一下. 在我们使用 ListView 的过程中,经常需要修改 Item 的状态,比如添加.删除.选中等等,通常的操作是在对数据源进行操作后,调用 notifyDataSetChanged() ,比如: public void add…
ListView 1.在android应用当中,很多时候都要用到listView,但如果ListView当中添加Button后,ListView 自己的 public void onItemClick(AdapterView<?> parent, View view, int position, long id) { } 就不能执行了,这里就涉及到一个焦点的问题. 在适配器嗦加载的XML文件中 把< RelativeLayout>或<linearLayout>中 and…
之前在项目中有一个需求是需要GridView控件,滚动到底部自动加载.但是呢GridView控件并不提供诸如ListView监听滚动到底部的onScrollListener方法,为了实现这样一个效果,用ListView实现了,但是控件的Item子项书写过于复杂,前前后后的出了好多次的Bug,而且还需要对数据进行特殊处理,用ListView实现了诸如GridView的效果并有滚动到底部加载更多的数据,但是过于复杂的结构及数据有点得不偿失. 博客地址:http://blog.csdn.net/ALo…
要想在一个ListView中使用多个布局文件,比如一个信息List包含了一个信息标题和每个信息对应的时间. 关键的步骤是实现Adapter类的getItemViewType 和getViewTypeCount 这两个方法 getItemViewType(int) 以int数值型返回itemView的类型.一般普通列表的item都是一样的布局,也就是说这个列表只有一种类型,但是很多时候我们需要列表显示不同的item,比如有的列表有普通item和separator两种类型,item用于响应用户点击事…
实现代码 Adapter的代码 其中:ViewHolder分别是三个不同的布局,也就是ListView中每一项的布局 TYPE_1...是三种类型. 在使用不同布局的时候,getItemViewType和getViewType不能少,一般是不用这两个函数的重载的 class RunRankAdapter extends BaseAdapter { ArrayList<HashMap<String, Object>> ls; Context mContext; LinearLayou…