注册
环信即时通讯云

环信即时通讯云

单聊、群聊、聊天室...
环信开发文档

环信开发文档

ChatGPT讨论

ChatGPT讨论

畅所欲言
RTE开发者社区

RTE开发者社区

汇聚音视频领域技术干货,分享行业资讯
技术讨论区

技术讨论区

技术交流、答疑
资源下载

资源下载

收集了海量宝藏开发资源
iOS Library

iOS Library

不需要辛辛苦苦的去找轮子, 这里都有
Android Library

Android Library

不需要辛辛苦苦的去找轮子, 这里都有
0
评论

基于 Android 系统方案适配 Night Mode 后,老板要再加一套皮肤? 皮肤 Android

王二蛋和他的张大花 发表了文章 • 201 次浏览 • 2023-01-12 11:03 • 来自相关话题

背景说明 原本已经基于系统方案适配了暗黑主题,实现了白/黑两套皮肤,以及跟随系统。后来老板研究学习友商时,发现友商 App 有三套皮肤可选,除了常规的亮白和暗黑,还有一套暗蓝色。并且在跟随系统暗黑模式下,用户可选暗黑还是暗蓝。这不,新的需求马上就来了。 其实我... ...查看全部
0
评论

使用 Jetpack Compose 做一个年度报告页面 jetpack compose

王二蛋和他的张大花 发表了文章 • 132 次浏览 • 2023-01-12 10:59 • 来自相关话题

刚刚结束的 2022 年,不少应用都给出了自己的 2022 年度报告。趁着这股热潮,我自己维护的应用《译站》 也来凑个热闹,用 Jetpack Compose 写了个报告页面。效果如下: 效果还算不错?如果需要实际体验的,可以前往 这里 下载翻译后打开底部最... ...查看全部
0
评论

如何优雅的在Fragment中使用ViewBinding fragment ViewBinding

王二蛋和他的张大花 发表了文章 • 192 次浏览 • 2023-01-12 10:57 • 来自相关话题

前言 在Fragment中控制View十分简单,只需要声明+findViewById即可: class FragmentA : Fragment() { private lateinit var imageView: ImageView ... ...查看全部
0
评论

kotlin-object关键字与单例模式 单例模式 kotlin object

王二蛋和他的张大花 发表了文章 • 157 次浏览 • 2023-01-11 11:01 • 来自相关话题

object 关键字有三种不同的语义:匿名内部类、伴生对象、单例模式。因为 Kotlin 的设计者认为,这三种语义本质上都是在定义一个类的同时还创建了对象。在这样的情况下,与其分别定义三种不同的关键字,还不如将它们统一成 object 关键字。 一、 匿名内部... ...查看全部
0
评论

由浅入深,详解 ViewModel 的那些事 ViewModel

王二蛋和他的张大花 发表了文章 • 181 次浏览 • 2023-01-11 10:57 • 来自相关话题

引言 关于 ViewModel ,Android 开发的小伙伴应该都非常熟悉,无论是新项目还是老项目,基本都会使用到。而 ViewModel 作为 JetPack 核心组件,其本身也更是承担着不可或缺的作用。 因此,了解 ViewModel 的设计思想更是每个... ...查看全部
0
评论

兔年了,一起用Compose来画兔子吧 compose

王二蛋和他的张大花 发表了文章 • 137 次浏览 • 2023-01-11 10:55 • 来自相关话题

准备工作 兔子主要还是画在画布上面,所以我们首先得生成个Canvas,然后确定Canvas的宽高跟画笔颜色 val drawColor = colorResource(id = R.color.color_EC4126) Canvas( modifie... ...查看全部
0
评论

Flutter 弹性布局的基石: Flex 和 Flexible Flexible Flex

王二蛋和他的张大花 发表了文章 • 186 次浏览 • 2023-01-10 10:51 • 来自相关话题

Flutter 弹性布局的基石 是 Flex 和 Flexible。理解了这两个 widget,后面的 Row,Column 就都轻而易举了。本文用示例的方式详细介绍 Flex 的布局算法。 Flex 布局算法 小写字母开头的 flex 是指 Flexible... ...查看全部
0
评论

Flutter 蒙层控件 ModalBarrier ModalBarrier

王二蛋和他的张大花 发表了文章 • 200 次浏览 • 2023-01-10 10:50 • 来自相关话题

ModalBarrier 是一个蒙层控件,可以对他后面的 UI 进行遮挡,阻止用户和后面的 UI 发生交互。 ModalBarrier 介绍 在实现上,核心代码是 是一个 ConstrainedBox 包了一个 ColoredBox 。ConstrainedB... ...查看全部
0
评论

比 Flutter ListView 更灵活的布局方式 ListView

王二蛋和他的张大花 发表了文章 • 156 次浏览 • 2023-01-10 10:49 • 来自相关话题

大家好,我是 17。 在 Flutter 中,涉及到滚动布局的时候,很多同学会大量使用 ListView。 ListView 的局限 没错,在实现效果的方面 ListView 确实能做到大多数,但是有些情况下会很别扭,性能也不好。你可能遇到过下面的设计: b... ...查看全部
0
评论

Flow 转 LiveData,数据丢了,肿么回事? flow LiveData

王二蛋和他的张大花 发表了文章 • 118 次浏览 • 2023-01-09 11:04 • 来自相关话题

前言 最近我在负责一段代码库,需要在使用 Flow 的 Data 层和仍然依赖 LiveData 暴露 State 数据的 UI 层之间实现桥接。好在 androidx.lifecycle 框架已经提供了一个叫做 asLiveData() 的方法,可以让你毫不... ...查看全部
0
评论

Compose跨平台第一弹:体验Compose for Desktop Desktop compose

王二蛋和他的张大花 发表了文章 • 210 次浏览 • 2023-01-09 11:02 • 来自相关话题

前言 Compose是Android官方提供的声明式UI开发框架,而Compose Multiplatform是由JetBrains 维护的,对于Android开发来说,个人认为学习Jetpack Compose是必须的,因为它会成为Android主流的开发模... ...查看全部
0
评论

实测分析Const在Flutter中的性能表现 Flutter Const

王二蛋和他的张大花 发表了文章 • 171 次浏览 • 2023-01-09 11:00 • 来自相关话题

在实际的Flutter开发中,可以发现编辑器AS会提示在组件之前加上const关键字, 这是因为Flutter2之后,多了一个linter规则,prefer_const_constructors,官方建议首选使用const来实例化常量构造函数。 那cons... ...查看全部
0
评论

RxJava加Retrofit文件分段上传 rxjava retrofit

王二蛋和他的张大花 发表了文章 • 136 次浏览 • 2023-01-06 11:21 • 来自相关话题

前言   本文基于 RxJava 和 Retrofit 库,设计并实现了一种用于大文件分块上传的工具,并对其进行了全面的拆解分析。抛砖引玉,对同样有处理文件分块上传诉求的读者,可能会起到一定的启发作用。 文章主体由四部分构成: 首先分析问题,问题拆解为:多线... ...查看全部
0
评论

运动APP视频轨迹回放分享实现 视频轨迹回放

王二蛋和他的张大花 发表了文章 • 183 次浏览 • 2023-01-06 11:15 • 来自相关话题

喜欢户外运动的朋友一般都应该使用过运动APP(keep, 咕咚,悦跑圈,国外的Strava等)的一项功能,就是运动轨迹视频分享,分享到朋友圈或是运动群的圈子里。笔者本身平常也是喜欢户外跑、骑行、爬山等户外运动,也跑过半马、全马,疫情原因之前报的杭州的全马也延期... ...查看全部
0
评论

RxJava2 事件分发&消费绑定逻辑 简析 事件分发 RxJava2

王二蛋和他的张大花 发表了文章 • 136 次浏览 • 2023-01-06 11:13 • 来自相关话题

前言 重温RxJava2源码,做个简单的记录,本文仅分析事件的发射与消费简单逻辑,从源码角度分析被观察者(上游事件)是如何与观察者(下游事件)进行关联的。 事件发射 Observable.just(1,2,3) .subscribe(); Ob... ...查看全部
0
评论

Kotlin 协程探索 kotlin

王二蛋和他的张大花 发表了文章 • 134 次浏览 • 2023-01-05 11:03 • 来自相关话题

Kotlin 协程是什么? 本文只是自己经过研究后,对 Kotlin 协程的理解概括,如有偏差,还请斧正。 简要概括: 协程是 Kotlin 提供的一套线程 API 框架,可以很方便的做线程切换。 而且在不用关心线程调度的情况下,能轻松的做并发编程。也可以说... ...查看全部
0
评论

Android实现RecyclerView嵌套流式布局 嵌套流式布局 RecyclerView

王二蛋和他的张大花 发表了文章 • 128 次浏览 • 2023-01-05 10:59 • 来自相关话题

前言 Android开发中,列表页面是常见需求,流式布局的标签效果也是常见需求,那么两者结合的效果啥样呢?这篇文章简单实现一下。 实现过程 添加流式布局依赖,在app/build.gradle文件中添加如下代码 implementation 'com.go... ...查看全部
0
评论

如何搞一个在线的Shape生成 Shape

王二蛋和他的张大花 发表了文章 • 173 次浏览 • 2023-01-05 10:57 • 来自相关话题

Shape是Android中一个必不可少的资源,很多的背景,比如圆角,分割线、渐变等等效果,几乎都有它的影子存在,毕竟写起来简单便捷,使用起来也是简单便捷,又占用内存小,谁能不爱?无论是初级,还是中高级,创建一个shape文件,相信大家都是信手拈来。 虽然在项... ...查看全部
0
评论

Android 字节码插桩全流程解析 字节码插桩 Android

王二蛋和他的张大花 发表了文章 • 165 次浏览 • 2023-01-04 11:25 • 来自相关话题

1 准备工作 但凡涉及到gradle开发,我一般都是会在buildSrc文件夹下进行,还有没有伙伴不太了解buildSrc的,其实buildSrc是Android中默认的插件工程,在gradle编译的时候,会编译这个项目并配置到classpath下。这样的话在... ...查看全部
0
评论

Kotlin 惰性集合操作-序列 Sequence Sequence

王二蛋和他的张大花 发表了文章 • 124 次浏览 • 2023-01-04 11:20 • 来自相关话题

集合操作函数 和 序列 在了解 Kotlin 惰性集合之前,先看一下 Koltin 标准库中的一些集合操作函数。 定义一个数据模型 Person 和 Book 类: data class Person(val name: String, val age: In... ...查看全部
0
评论

深入flutter布局约束原理 布局约束 Flutter

王二蛋和他的张大花 发表了文章 • 126 次浏览 • 2023-01-04 11:14 • 来自相关话题

刚开始接触flutter的时候,Container组件是用得最多的。它就像HTML中的div一样普遍,专门用来布局页面的。 但是使用Container嵌套布局的时候,经常出现一些令人无法理解的问题。就如下面代码,在一个固定的容器中,子组件却铺满了全屏。 ///... ...查看全部
0
评论

Android App封装 —— 实现自己的EventBus eventbus

王二蛋和他的张大花 发表了文章 • 162 次浏览 • 2023-01-03 11:17 • 来自相关话题

背景 在项目中我们经常会遇到跨页面通信的需求,但传统的EventBus都有各自的缺点,如EventBus和RxBus需要自己管理生命周期,比较繁琐,基于LiveData的Bus切线程比较困难等。于是我参考了一些使用Flow实现EventBus的文章,结合自身需... ...查看全部
0
评论

Android App封装 —— DI框架 Hilt?Koin? hilt Koin

王二蛋和他的张大花 发表了文章 • 201 次浏览 • 2023-01-03 11:16 • 来自相关话题

背景 前面的项目Github wanandroid例子我们可以看到,我们创建Repository和ViewModel的时候,都是直接创建的 class MainViewModel : BaseViewModel<MainState, MainIntent... ...查看全部
0
评论

Android App封装 —— ViewBinding ViewBinding

王二蛋和他的张大花 发表了文章 • 192 次浏览 • 2023-01-03 11:14 • 来自相关话题

一、背景 在前面的Github wanandroid项目中可以看到,我获取控件对象还是用的findviewbyId button = findViewById(R.id.button) viewPager = findViewById(R.id.view_pa... ...查看全部
0
评论

Android App封装 ——架构(MVI + kotlin + Flow) flow kotlin MVI

王二蛋和他的张大花 发表了文章 • 233 次浏览 • 2023-01-03 11:10 • 来自相关话题

一、背景 最近看了好多MVI的文章,原理大多都是参照google发布的 应用架构指南,但是实现方式有很多种,就想自己封装一套自己喜欢用的MVI架构,以供以后开发App使用。 说干就干,准备对标“玩Android”,利用提供的数据接口,搭建一个自己习惯使用的一套... ...查看全部
0
评论

90%的Java开发人员都会犯的5个错误 Java开发

王二蛋和他的张大花 发表了文章 • 146 次浏览 • 2022-12-30 10:50 • 来自相关话题

前言 作为一名java开发程序员,不知道大家有没有遇到过一些匪夷所思的bug。这些错误通常需要您几个小时才能解决。当你找到它们的时候,你可能会默默地骂自己是个傻瓜。是的,这些可笑的bug基本上都是你忽略了一些基础知识造成的。其实都是很低级的错误。今天,我总结一... ...查看全部
0
评论

快速上手Compose约束布局 compose

王二蛋和他的张大花 发表了文章 • 186 次浏览 • 2022-12-29 10:48 • 来自相关话题

前言 今天对Compose中约束布局的使用方法进行一下记录,我发现在学习Compose的过程中,像Column,Row等布局可以很快上手,可以理解怎样使用,但是对于ConstraintLayout 还是得额外学习一下,所以总结一下进行记录。其实Compose-... ...查看全部
0
评论

订单30分钟未支付自动取消怎么实现? 自动取消

王二蛋和他的张大花 发表了文章 • 155 次浏览 • 2022-12-28 11:07 • 来自相关话题

目录 了解需求 方案 1:数据库轮询 方案 2:JDK 的延迟队列 方案 3:时间轮算法 方案 4:redis 缓存 方案 5:使用消息队列 了解需求 在开发中,往往会遇到一些关于延时任务的需求。 例如 生成订单 30 分钟未支付,则自动取消 生成订单 ... ...查看全部
0
评论

为什么计算机中的负数要用补码表示? 补码

王二蛋和他的张大花 发表了文章 • 193 次浏览 • 2022-12-28 11:04 • 来自相关话题

思维导图: 1. 为什么计算机要使用二进制数制? 所谓数制其实就是一种 “计数的进位方式”。 常见的数制有十进制、二进制、八进制和十六进制: 十进制是我们日常生活中最熟悉的进位方式,它一共有 0、1、2、3、4、5、6、7、8 和 9 十个符号。在计数... ...查看全部
0
评论

掌握这17张图,没人比你更懂RecyclerView的预加载 RecyclerView

王二蛋和他的张大花 发表了文章 • 295 次浏览 • 2022-12-28 10:57 • 来自相关话题

实际上,预拉取(prefetch)机制作为RecyclerView的重要特性之一,常常与缓存复用机制一起配合使用、共同协作,极大地提升了RecyclerView整体滑动的流畅度。 并且,这种特性在ViewPager2中同样得以保留,对ViewPager2滑动效... ...查看全部
0
评论

Android URL Scheme数据还原流程与踩坑分享 Scheme

王二蛋和他的张大花 发表了文章 • 187 次浏览 • 2022-12-27 11:14 • 来自相关话题

前言 最近在搞URL Scheme数据还原相关代码的重构工作,借此梳理一下整体的流程。并且在重构过程中呢,还遇到了一个天坑,拿出来与大家分享一下。如果大家有更好的方案,欢迎评论或私信我让我学习一下~ 前置知识点 首先我们对齐一下所需要的前置知识点,避免后面造成... ...查看全部
0
评论

Android代码静态检查(lint、Checkstyle、ktlint、Detekt) 代码静态检查

王二蛋和他的张大花 发表了文章 • 260 次浏览 • 2022-12-27 11:02 • 来自相关话题

Android代码静态检查(lint、Checkstyle、ktlint、Detekt)在Android项目开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。静态代码分析工具能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时纠正这些... ...查看全部
0
评论

Flutter 实现手写签名效果 Flutter 手写签名

王二蛋和他的张大花 发表了文章 • 186 次浏览 • 2022-12-27 11:00 • 来自相关话题

如何使用Flutter实现手写签名的效果 思路 需要监听用户触摸的起始点和结束点,并记录途经点,这里我使用了StreamController 将途经点从起始位置到结束位置绘制出来,这里用到CustomPainter 绘制流程 获取触摸点作为画笔的起始点... ...查看全部
0
评论

RxJava观察者模式 观察者 rxjava

王二蛋和他的张大花 发表了文章 • 228 次浏览 • 2022-12-26 11:19 • 来自相关话题

1.RxJava的观察者模式 RxJava的观察者模式是扩展的观察者模式,扩展的地方主要体现在事件通知的方式有很多种 2.RxJava的观察者模式涉及到几个类 Observable:被观察者 Observer:观察者 Subscribe:订阅 Event:被... ...查看全部
0
评论

RxJava装饰者模式 装饰者 rxjava

王二蛋和他的张大花 发表了文章 • 198 次浏览 • 2022-12-26 11:18 • 来自相关话题

1.装饰者模式 装饰者模式时在保留原有结构的前提下添加新的功能,这些功能作为其原有结构的包装。 2.RxJava的装饰者模式 1.被观察者Observable 根据Observerable的源码可知Observable的结构接口是Observerable... ...查看全部
0
评论

Flutter 源码阅读 - StatefulWidget 源码分析 & State 生命周期 State StatefulWidget Flutter

王二蛋和他的张大花 发表了文章 • 244 次浏览 • 2022-12-26 11:11 • 来自相关话题

一、StatefulWidgetStatefulWidget 也是继承自 Widget,重写了 createElement,并且添加了一个新的接口 createState,下面我们看一下它的源码:看起来是不是很简单,代码... ...查看全部
0
评论

Jetpack Compose 十几行代码快速模仿即刻点赞数字切换效果 compose jetpack

王二蛋和他的张大花 发表了文章 • 172 次浏览 • 2022-12-26 11:08 • 来自相关话题

缘由 四点多刷掘金的时候,看到这样一篇文章: 自定义View模仿即刻点赞数字切换效果,作者使用自定义绘制的技术完成了数字切换的动态效果,也就是如图: 两图分别为即刻的效果和作者的实现 不得不说,作者模仿的很像,自定义绘制玩的炉火纯青,非常优秀。不过,即使是... ...查看全部
0
评论

超级全面的Flutter性能优化实践 性能优化 Flutter

王二蛋和他的张大花 发表了文章 • 275 次浏览 • 2022-12-22 11:00 • 来自相关话题

前言 Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的,可以用一套代码同时构... ...查看全部
0
评论

内存优化之掌握 APP 运行时的内存模型 内存优化

王二蛋和他的张大花 发表了文章 • 313 次浏览 • 2022-12-22 10:58 • 来自相关话题

为了让大家深入掌握 App 运行时的内存模型,这一节的内容按照由外到内、逐步深入的原则,分为了 3 个部分:内存描述指标内存数据获取内存模型详解话不多说,让我们马上开始这一章学习吧!内存描述指标在进行内存优化之前,我们必须要先熟悉常用的内存描述指标。内存描述指... ...查看全部
0
评论

算法| Java的int类型最大值为什么是21亿多? int

王二蛋和他的张大花 发表了文章 • 397 次浏览 • 2022-12-22 10:54 • 来自相关话题

开篇 本文主要介绍在Java中,为什么int类型的最大值为2147483647。 理论值 我们都知道在Java中,int 的长度为32位。 理论上,用二进制表示,32位每一位都是1的话,那么这个数是多少呢? 我们来计算一下,第0位可以用20^00表示,第1位... ...查看全部
0
评论

让人恶心的多线程代码,性能怎么优化! mipmap Drawable

王二蛋和他的张大花 发表了文章 • 207 次浏览 • 2022-12-21 11:15 • 来自相关话题

Java 中最烦人的,就是多线程,一不小心,代码写的比单线程还慢,这就让人非常尴尬。 通常情况下,我们会使用 ThreadLocal 实现线程封闭,比如避免 SimpleDateFormat 在并发环境下所引起的一些不一致情况。其实还有一种解决方式。通过对pa... ...查看全部
0
评论

App实现JSBridge的最佳方案 JSBridge

王二蛋和他的张大花 发表了文章 • 302 次浏览 • 2022-12-21 11:12 • 来自相关话题

前沿 写这篇文章的主要目的是对 App 的 JSBridge 做一个全面的介绍,同时根据不同的使用场景总结出一份 App 实现 JSBridge 的最佳方案。对于没有接触过 App 的同学能够对 JSBridge 有个大致的概念,对于做过 App 的 JSBr... ...查看全部
0
评论

Glide 原理探索 Glide

王二蛋和他的张大花 发表了文章 • 198 次浏览 • 2022-12-21 11:06 • 来自相关话题

implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' ... ...查看全部
0
评论

Android的线程和线程池 线程池

王二蛋和他的张大花 发表了文章 • 164 次浏览 • 2022-12-20 10:53 • 来自相关话题

从用途上来说Android的线程主要分为主线程和子线程两类,主线程主要处理和界面相关的工作,子线程主要处理耗时操作。除Thread之外,Android中还有其他扮演线程的角色如AsyncTask、IntentService、HandleThread,其中Asy... ...查看全部
0
评论

Android 位图(图片)加载引入的内存溢出问题分析 内存溢出 Android

王二蛋和他的张大花 发表了文章 • 196 次浏览 • 2022-12-20 10:49 • 来自相关话题

1.一些定义 在分析具体问题之前,我们先了解一些基本概念,这样可以帮助理解后面的原理部分。当然了,大家对于这部分定义已经了然于胸的,就可以跳过了。 什么是内存泄露? 我们知道Java GC管理的主要区域是堆,Java中几乎所有的实例对象数据实际是存储在堆上的(... ...查看全部
0
评论

Handler就是一个简化的邮递系统么? Android handler

王二蛋和他的张大花 发表了文章 • 168 次浏览 • 2022-12-20 10:46 • 来自相关话题

前置补充 关于本文的初衷不是讲很多细节,主要像聚焦在Handler的设计理念上,主要想讲述计算机系统中的很多事情在现实中其实有现成的例子可以参考理解,当然现实生活比程序肯定更复杂。 知行合一,想完全理解一个事物,肯定不能光靠看文章,还是要在实际的工作中... ...查看全部
0
评论

你真的了解 RSA 加密算法吗? 加密算法 RSA

王二蛋和他的张大花 发表了文章 • 162 次浏览 • 2022-12-19 11:10 • 来自相关话题

记得那是我毕业🎓后的第一个秋天,申请了域名,搭建了论坛。可惜好景不长,没多久进入论坛后就出现各种乱七八糟的广告,而这些广告压根都不是我加的。 这是怎么回事?后来我才知道,原来我的论坛没有加 HTTPS 也就是没有 SSL 证书。那这和数学中的素数... ...查看全部
0
评论

Flutter 组件分析之AspectRatio Flutter AspectRatio

王二蛋和他的张大花 发表了文章 • 148 次浏览 • 2022-12-19 10:59 • 来自相关话题

引言 AspectRatio 可以根据具体的长宽比约束 child 的布局范围, 从而影响 child 的大小. 通常在视频、图像中会经常使用, 今天我们来分析一下它的实现原理. AspectRatio AspectRatio 的参数只有 key、aspect... ...查看全部
0
评论

Flutter 小技巧之快速理解手势逻辑 手势逻辑 Flutter

王二蛋和他的张大花 发表了文章 • 176 次浏览 • 2022-12-19 10:58 • 来自相关话题

GestureDetector 不管你用 InkWell 、InkResponse 、TextButton 还是 ElevatedButton , 它们针对手势的处理逻辑都是来自于 GestureDetector ,也就是理解 Flutter 的手势处理... ...查看全部
0
评论

细节决定成败:探究Mybatis中javaType和ofType的区别 ofType javaType mybatis

王二蛋和他的张大花 发表了文章 • 176 次浏览 • 2022-12-16 10:51 • 来自相关话题

一. 背景描述 今天,壹哥给学生讲解了Mybatis框架,学习了基础的ORM框架操作及多对一的查询。在练习的时候,小张同学突然举手求助,说在做预习作业使用一对多查询时,遇到了ReflectionException 异常 。 二. 情景再现 1. 实体类 为了给... ...查看全部