当前位置: 首页 > news >正文

简约wordpressseo培训机构

简约wordpress,seo培训机构,省运会官方网站建设,上海建筑建材业门户网站之前一直没注意 SnapHelper 辅助类的功能#xff0c;去年的时候看到项目中仅通过俩行代码设置 RecyclerView 后就提升了用户体验#xff0c;觉得还是很有必要了解一下#xff0c;尝试过后才发现其 PagerSnapHelper、LinearSnapHelper 子类可以作用于不同场景#xff0c;且听… 之前一直没注意 SnapHelper 辅助类的功能去年的时候看到项目中仅通过俩行代码设置 RecyclerView 后就提升了用户体验觉得还是很有必要了解一下尝试过后才发现其 PagerSnapHelper、LinearSnapHelper 子类可以作用于不同场景且听吾言 RecyclerView基础 Android进阶之路 - RecyclerView基础使用17年Android进阶之路 - RecyclerView实现横、纵向滑动列表19年Android基础进阶 - RecyclerView列表加载多类型视图 RecyclerView扩展 Android进阶之路 - RecyclerView加载多类型视图ConcatAdapter到底有没有学习必要Android进阶之路 - RecyclerView停止滑动后Item自动居中SnapHelper辅助类 RecyclerView相关功能 Android进阶之路 - RecyclerView左划删除SwipeRecyclerView的简单使用 17年Android进阶之路 - RecyclerView列表置顶、滑动到指定条目18年Android进阶之路 - RecyclerView列表自动无限水平滚动21年 Android进阶之路 - 双列表联动效果18年 他字字未提喜欢你你句句都是我愿意 基础了解实践检验前置 ItemView前置 Adapter使用方式 你在开发项目中遇到过这样的场景吗 HintRecyclerView 为水平滑动 子ItemView 宽度非 match_parent支持同屏展示多个ItemView 用户滑动列表时产生类似 ViewPager 效果停止滑动后ItemView 自动居中一般正常速度滑动只滑动一条数据但是当滑动速度加快比较费力时可能会滑动多条数据用户正常速度滑动列表时可更轻易的滑动多条数据停止滑动后子ItemView自动居中 Look效果如果以下效果不能完全满足也可以自定义SnapHelper然后参考其子类实现增添部分你需要的业务功能例如修改滑动速度等 Tip核心方法仅有俩行如急于开发亦可直接使用或直接看实践检验等有时间再来一同了解 创建对应的 SnapHelper 后通过 attachToRecyclerView 关联 RecyclerView 即可 PagerSnapHelper val pagerSnapHelper PagerSnapHelper()pagerSnapHelper.attachToRecyclerView(mRvPager)LinearSnapHelper val lineaSnapHelper LinearSnapHelper()lineaSnapHelper.attachToRecyclerView(mRvLinear)基础了解 SnapHelper自身为抽象类同时继承了RecyclerView.OnFlingListener内部实现了一些通用基类方法you俩个实现子类通过重写其中部分方法从而达到对应的需求效果 PagerSnapHelper类似ViewPager滑动效果仅支持单条滑动在 ViewPager控件中也可以看到PagerSnapHelper的身影LinearSnapHelp水平快速滑动列表体验丝滑当滑动停止后ItemView 自动居中 OnFlingListener 仅拥有一个抽象方法 因为我只是通过源码方法命名 参考方法注释 简单理解可能并不是很详细有兴趣的可以前往早期一位前辈写的 让你明明白白的使用RecyclerView——SnapHelper详解 通过查看 SnapHelper 内部方法简单分析一下方法作用范围仅做部分解释并不完全 支持 绑定RecyclerViewcalculateDistanceToFinalSnap 测量移动距离findSnapView 支持 定位移动的ViewfindTargetSnapPosition 支持定位移动后的数据(视图)角标FlingListener、ScrollListener 滑动监听滑动速度监听 PagerSnapHelper、LinearSnapHelper 除基类方法外支持获取居中View、布局方向等 PagerSnapHelper 源码方法 LinearSnapHelper 源码方法 如果要自定义 SnapHelper 的话需要重新以下三个抽象方法 package com.example.recyclerviewsnaphelperimport android.view.View import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.SnapHelperclass OurHelper : SnapHelper() {//计算最终移动距离override fun calculateDistanceToFinalSnap(layoutManager: RecyclerView.LayoutManager, targetView: View): IntArray? {TODO(Not yet implemented)}//获取移动Viewoverride fun findSnapView(layoutManager: RecyclerView.LayoutManager?): View? {TODO(Not yet implemented)}//获取移动View的角标位置override fun findTargetSnapPosition(layoutManager: RecyclerView.LayoutManager?, velocityX: Int, velocityY: Int): Int {TODO(Not yet implemented)} }实践检验 RecyclerView 常规使用仅加入了SnapHelper.attachToRecyclerView相关绑定 前置 ItemView item_view ?xml version1.0 encodingutf-8? androidx.appcompat.widget.LinearLayoutCompat xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_width250dpandroid:layout_height100dpandroid:paddingHorizontal5dpTextViewandroid:idid/tv_dataandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:background#f98741android:gravitycenterandroid:textItem Dataandroid:textColor#ffffffandroid:textStylebold / /androidx.appcompat.widget.LinearLayoutCompat前置 Adapter package com.example.recyclerviewsnaphelperimport android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerViewclass OurAdapter(private val dataList: MutableListString) : RecyclerView.AdapterOurAdapter.OurViewHolder() {override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): OurViewHolder {return OurViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item_view, parent,false))}override fun getItemCount(): Int {return dataList.size}override fun onBindViewHolder(holder: OurViewHolder, position: Int) {holder.itemView.findViewByIdTextView(R.id.tv_data).textdataList[position]}inner class OurViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) }使用方式 package com.example.recyclerviewsnaphelperimport android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearSnapHelper import androidx.recyclerview.widget.PagerSnapHelper import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.HORIZONTALclass MainActivity : AppCompatActivity() {var dataList mutableListOfString()override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)//数据模拟for (i in 0..15) {dataList.add(第${i 1}页)}//RecyclerView基础配置pagerRecyclerSetting()layoutRecyclerSetting()}/*** RecyclerView基础配置PagerSnapHelper示例* */private fun pagerRecyclerSetting() {val mRvPager findViewByIdRecyclerView(R.id.rv_pager)var layoutManager LinearLayoutManager(this)layoutManager.orientation HORIZONTALmRvPager.layoutManager layoutManagerval ourPagerAdapter OurAdapter(dataList)mRvPager.adapter ourPagerAdapter//添加SnapHelper相关辅助类val pagerSnapHelper PagerSnapHelper()pagerSnapHelper.attachToRecyclerView(mRvPager)}/*** RecyclerView基础配置LinearSnapHelper示例* */private fun layoutRecyclerSetting() {val mRvLinear findViewByIdRecyclerView(R.id.rv_linear)var layoutManager LinearLayoutManager(this)layoutManager.orientation HORIZONTALmRvLinear.layoutManager layoutManagerval ourLayoutAdapter OurAdapter(dataList)mRvLinear.adapter ourLayoutAdapter//添加SnapHelper相关辅助类val lineaSnapHelper LinearSnapHelper()lineaSnapHelper.attachToRecyclerView(mRvLinear)} }activity_main 预览图 layout布局 ?xml version1.0 encodingutf-8? androidx.appcompat.widget.LinearLayoutCompat xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticaltools:context.MainActivityTextViewandroid:layout_widthmatch_parentandroid:layout_height40dpandroid:gravitycenterandroid:textPagerSnapHelper效果android:textStylebold /androidx.recyclerview.widget.RecyclerViewandroid:idid/rv_pagerandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalapp:layoutManagerandroidx.recyclerview.widget.LinearLayoutManagertools:itemCount10tools:listitemlayout/item_view /TextViewandroid:layout_widthmatch_parentandroid:layout_height40dpandroid:layout_marginTop50dpandroid:gravitycenterandroid:textLinearSnapHelperandroid:textStylebold /androidx.recyclerview.widget.RecyclerViewandroid:idid/rv_linearandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalapp:layoutManagerandroidx.recyclerview.widget.LinearLayoutManagertools:itemCount10tools:listitemlayout/item_view //androidx.appcompat.widget.LinearLayoutCompat
http://www.zqtcl.cn/news/680818/

相关文章:

  • 网站域名备案与不备案的区别wordpress 注册审核
  • 大学生做企业网站网页设计免费模板情侣
  • 商城网站建设教程网站开发支付宝
  • 广安网站设计快递加盟代理
  • 建设网站的建筑公司宿迁华夏建设集团网站
  • 百度推广网站建设费利用阿里云虚拟主机做网站
  • 吐槽做网站论坛模板
  • 广水住房和城乡建设部网站简单网页制作代码html
  • 建设网站找什么仿门户网站
  • 贵阳手机网站建设公司沈阳图书设计公司
  • 哪里做网站比较好在哪里注册域名
  • 做搜狗pc网站软件下载广告设计与制作学什么
  • 软件工程 旅游网站开发er图昆山网站建设网站建设
  • 网站下载的网页修改下面版权所有企业建设营销型网站的目的有
  • 官方重大项目建设库网站手机ps软件如何做ppt下载网站
  • 全国加盟网站大全海尔网站建设目标
  • wordpress 企业站模版自己做视频网站可以吗
  • 建设电子商务网站的方法有广东网站开发收费
  • php网站页面转wordpress网站广告代码
  • 在线网站建设教程网站版面布局结构
  • 网站建设提议网站建设怎么在图片上加字
  • 网站模板但没有后台如何做网站家政网站开发
  • 自己办网站审批流程网页设计师的发展路径
  • 什么叫网站地图百度竞价排名费用
  • 企业网站建设顾问wordpress如何用API采集
  • win7网站后台无法编辑vr网站建设
  • 做头发个人网站制作素材dw中做网站的步骤
  • 学校网站做几级等保网页制作与维护
  • 十堰外贸网站建设松滋做网站
  • 网站导航条青浦徐泾网站建设