• 滚动条监听事件
  • @param event
    */
    onScrollFunc = (event) => {
    // 将滚动的值绑定到渐变动画
    Animated.event([{nativeEvent: {contentOffset: {y: this.state.logoOpacity}}}])(event)

// 将滚动的值绑定到边距动画
Animated.event([{nativeEvent: {contentOffset: {y: this.state.searchViewMargin}}}])(event)
}

renderSearchView = () => {
const AnimatedTouchableOpacity = Animated.createAnimatedComponent(TouchableOpacity)

const marginRight = this.state.searchViewMargin.interpolate({
inputRange: [0, 80], // 当滚动条滚动到0~80的位置时
outputRange: [0, 80], // 将右边距改为从0~80
extrapolate: ‘clamp’ // 滚动超出0~80的范围,不在更改边距
})
const marginTop = this.state.searchViewMargin.interpolate({
inputRange: [0, 160], // 当滚动条滚动到0~160的位置时
outputRange: [0, -36], // 将上边距改为从0~

-36
extrapolate: ‘clamp’ // 滚动超出0~160的范围,不在更改边距
})

return (
<AnimatedTouchableOpacity
style={styles.top_search_container(marginRight, marginTop)}
activeOpacity={0.8}
onPress={this.gotoSearch}

{'新品'} ) }

GoodsCategory.js 解析

render() {
return (

// 一级分类列表,采用FlatList
<FlatList
ref={refs => this.flatList = refs}
keyExtractor={(item, index) => index.toString()}
data={this.state.firstCategoryData}
renderItem={this.renderFirstCategoryItem}
ItemSeparatorComponent={this.renderSeparatorLine}
/>

// 二级、三级分类列表,采用SectionList
<SectionList
ref={refs => this.sectionList = refs}
renderSectionHeader={this.renderSecondCategorySectionHeader}
renderItem={this.renderSecondCategoryItem}
sections={this.state.secondCategoryData}
ItemSeparatorComponent={null}
ListHeaderComponent={null}
ListFooterComponent={null}
keyExtractor={(item, index) => index + item}
/>

);
}

// 点击一级分类时,需要计算滚动条的位置
onClickFirstCategoryItem = (item, index) => {
this.setState({selectedFirstCategoryIndex: index});

// 计算当前 item 的高度
const indexHeight = firstCategoryItemHeight * index;

// 计算屏幕一半的高度
const halfHeight = (height - 65) / 2;

// 如果当前 item 的高度 大于 屏幕一半的高度,就让滚动条滚动 indexHeight - halfHeight 高度(类似京东商品分类效果)
if (indexHeight > halfHeight) {
this.flatList.scrollToOffset({
animated: true,
offset: indexHeight - halfHeight,
});
}

this.sectionList.scrollToLocation({
animated: true,
itemIndex: 0,
sectionIndex: 0,
});
};

TopTabView.js 解析

/**

  • 显示下拉菜单
  • @param index 当前选中时的 tab 下标
    */
    showDropdownMenu = (index) => {
    // measure方法测量"箭头图标"在页面中的位置、宽高
    this.arrowIcon.measure((x, y, width, height, pageX, pageY) => {
    const topOffset = pageY + height // 计算"下拉菜单"距离页面顶部的偏移量
    this.dropdownMenu.show(topOffset, index) // 显示"下拉菜单"
    })
    }

组件的 measure((x, y, width, height, pageX, pageY) => {}) 方法可以动态的获取组件在屏幕中的位置、宽高信息。measure 方法的参数 x,y 表示组件的相对位置,width,height 表示组件的宽度和高度,pageX,pageY 表示组件相对于屏幕的绝对位置。

TopDropdownMenu.js 解析

// 使用 Modal 来实现弹窗菜单,达到遮罩效果
render() {
const {isVisible, data, topOffset} = this.state;
return (
<Modal

学习福利

【Android 详细知识点思维脑图(技能树)】

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。

这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

由于篇幅有限,这里以图片的形式给大家展示一小部分。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XbRhaJlq-1647532742154)(https://upload-images.jianshu.io/upload_images/14735202-e79ae5bfd9eced94.png?imageMogr2/auto-orient/strip|imageView2/2/w/817/format/webp)]

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
的形式给大家展示一小部分。

[外链图片转存中…(img-XbRhaJlq-1647532742154)]

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

React-Native-版高仿淘宝、京东商城首页、商品分类页面,android快速开发框架相关推荐

  1. android版高仿淘宝客户端源码V2.3

    android版高仿淘宝客户端源码V2.3,这个版本我已经更新到2.3了,源码也上传到源码天堂那里了,大家可以看一下吧,该应用实现了我们常用的购物功能了,也就是在手机上进行网购的流程的,如查看产品(浏 ...

  2. 伯乐发卡系统高级版源码 高仿淘宝模板 带用户中心

    介绍: 内置高仿淘宝模板,带用户中心  分销代理等等 推荐使用宝塔面板安装,设置运行目录为public,测试环境为php7.0 mysql5.5 伪静态选择为thinkphp 授权已经去了,后台是/h ...

  3. 仿淘宝京东商品规格属性选择的最简单实现

    仿淘宝京东商品规格属性选择的最简单实现 商城里面的规格选择,网上大部分是自定义控件实现的,显得很是麻烦,而我的实现方式是大家最常用的控件RecyclerView,特点是性能好,简单.废话不多说,先看实 ...

  4. 纯css仿淘宝京东导航菜单栏

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  5. 高仿淘宝分页:jQuery分页插件kkpager-Array-专题视频课程

    高仿淘宝分页:jQuery分页插件kkpager-503人已学习 课程介绍         天底下万能的分页 课程收益     让所有人不再为分页所苦恼 讲师介绍     Array 更多讲师课程   ...

  6. 微信小程序 三级分类(高仿淘宝页面分类)

    ** 三级分类(高仿淘宝页面分类) ** 初步的二级页面参考的这个文章的代码:https://blog.csdn.net/luowei85520/article/details/90510311 这个 ...

  7. JavaScript仿淘宝京东放大镜效果(鼠标事件)------JavaScript学习之路10

    JavaScript仿淘宝京东放大镜效果 注意 一定计算好放大比例,本程序放大5倍,具体放大倍数,自定 效果 完整源码 <!DOCTYPE html> <html lang=&quo ...

  8. 高仿淘宝和聚美优品商城详情页实现《IT蓝豹》

    高仿淘宝和聚美优品商城详情页实现 android-vertical-slide-view高仿淘宝和聚美优品商城详情页实现,在商品详情页,向上拖动时,可以加载下一页. 使用ViewDragHelper, ...

  9. 安卓APP源码和设计报告——仿淘宝水果商城

    项目名称 仿淘宝水果商城 项目概述 随着互联网技术地高速发展,计算机进入到每一个人的生活里,从人们的生活方式到整个社会的运转都产生了巨大的变革,而在信息技术发达的今天,互联网的各种娱乐方式都在渗透到人 ...

  10. java B2B2C 仿淘宝电子商城系统-Spring Cloud Feign的文件上传实现

    在Spring Cloud封装的Feign中并不直接支持传文件,但可以通过引入Feign的扩展包来实现,本文就来具体说说如何实现.需要JAVA Spring Cloud大型企业分布式微服务云构建的B2 ...

最新文章

  1. CocosCreator TOUCH_MOVE事件
  2. Atitit.安全性方案规划设计4gm  v1 q928
  3. 皮一皮:叫车就要叫这样的,霸气...
  4. 驰为hi10u盘启动linux,驰为Hi10 Plus二合一平板电脑:双系统更有玩头
  5. NYOJ 645 骰子
  6. python pandas教程百家号_python--学习笔记6 pandas
  7. C++中重写与覆写(虚函数virtual)的区别
  8. c语言程序定义不知数量的一维数组,c语言程序设计10-第6章 利用数组处理批量数据 6.1 怎样定义和引用一维数组.ppt...
  9. day14——内置函数
  10. js 用submit()方法提交表单,页面闪退问题以及解决方法
  11. LeetCode刷题(27)
  12. QCIF CIF 2CIF 4CIF 普及
  13. mysql 怎样更新数据库_MySQL数据库更新语句update使用详解
  14. 方向键按键转发,模仿笔记本Fn按键
  15. c# api接口管理
  16. python grad_PyTorch中model.zero_grad()和optimizer.zero_grad()用法
  17. 神级操作丨用 Python 将微信热文转换成Word文档
  18. 计算机管理 服务无响应,电脑任务栏假死点击没反应的解决方法(win7与xp)
  19. 基于Python的简单验证码识别
  20. 一千万条数据,怎么快速查询

热门文章

  1. 设置 easyUi的linkbutton按钮生效 失效
  2. QIODevice::write函数惹得祸
  3. 团体程序设计天梯赛-练习集 L2 阶段全部题解
  4. 树莓派连接“手机热点“或“WiFi“ 后无法上网,以及连接“手机热点“或“WiFi“时VNC连接失败问题
  5. 计算机驱动程序签名,如何对驱动程序包进行测试签名
  6. console线与电脑连接
  7. 如何判断整数运算是否溢出
  8. android 4.2.2提示 unauthorized终极解决办法,很粗暴
  9. (一)页面跳转的四种方法及页面跳转中相对路径问题
  10. 一老一小,家庭智能化两大方向