自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3161)
  • 收藏
  • 关注

转载 Android中的导航navigation的使用详细步骤

在Android中,导航主要通过使用Navigation SDK来实现,该SDK提供了一组工具和组件,可以帮助开发人员构建具有一致性和可访问性的用户界面,这篇文章主要介绍了Android中的导航navigation的使用详细步骤,需要的朋友可以参考下。如下是一个在Android中使用Kotlin进行导航的一个简单例子,涉及创建一个简单的应用程序,其中包含一个底部的导航栏,用户可以通过它从一个屏幕导航到另一个屏幕。通过底部的导航栏,用户可以导航到不同的Fragment。

2024-07-21 21:42:11 5

转载 Flutter使用Provider进行状态管理的实现

通过这种方式,你可以将应用的不同部分的状态管理分离开来,从而使你的代码更加模块化和可维护。Provider是Flutter中一个非常流行的状态管理工具,它可以帮助开发者更有效地管理Widget树中的数据,本文主要介绍了Flutter使用Provider进行状态管理的实现,感兴趣的可以了解一下。当你点击浮动按钮时,increment方法会被调用,CounterModel中的计数器会增加,并通过notifyListeners通知Consumer重新构建,这样UI上显示的数字就会更新。

2024-07-21 21:39:07 5

转载 Flutter 页面跳转和传值的实现

每当你跳转到一个新页面时,Navigator 会将新页面的 Route 压栈(push),当你返回到之前的页面时,它会将当前页面的 Route 出栈(pop)。在 Android 上,它通常是一个从屏幕底部向上滑入的动画,而在 iOS 上,它通常是一个从屏幕右侧滑入的动画。命名路由是一种用于管理页面导航的技术,它允许你为每个页面分配一个唯一的名称,并通过这些名称在应用程序中进行页面之间的导航。routes 是一个 Map,它的键是字符串(路由的名称),而值是对应的构造器函数,返回相应的页面 Widget。

2024-07-21 21:36:00 8

转载 Android如何获取本地文件目录

到此这篇关于Android如何获取本地文件目录的文章就介绍到这了,更多相关Android获取本地文件目录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持。这篇文章主要介绍了Android如何获取本地文件目录,通过点击按钮,获取本地文件目录,可以选择图片,展示选取的对应图片和展示存储路径,感兴趣的朋友跟随小编一起看看吧。一个简单的demo。点击按钮,获取本地文件目录,可以选择图片,展示选取的对应图片和展示存储路径。

2024-07-21 21:29:33 7

转载 Android中WebView的使用与后退键处理详细讲解

博主自从开始写安卓以来,一直饱受WebView的摧残,好在网上一大堆的大神给出了他们成长路上遇到的坑以及一些解决办法,这篇文章主要给大家介绍了关于Android中WebView的使用与后退键处理的相关资料,需要的朋友可以参考下。到此这篇关于Android中WebView的使用与后退键处理的文章就介绍到这了,更多相关WebView使用与后退键处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持。这样,当用户按下后退键时,如果WebView可以后退到上一个页面,就会执行后退操作;

2024-07-21 21:27:00 3

转载 Android WebView的使用与后退键处理详细讨论

对于webView的使用,我们可以通过loadUrl()方法加载网页内容,还可以监听webView的各种事件来实现特定的功能。而对于后退键处理,我们可以重写Activity的onKeyDown()方法,通过判断后退键的按下事件来实现返回上一页的功能。在android开发中我们有时候根据项目的需求多少会加载一些webview,加载webview,我们有时候会根据UI来自定义返回键,下面这篇文章主要给大家介绍了关于Android WebView的使用与后退键处理的相关资料,需要的朋友可以参考下。

2024-07-21 21:24:26 3

转载 Flutter中显示条件Widget的实现方式

在 Flutter 日常开发中经常会遇见这样的需求,如: 只有用户是 VIP 时,才能展示某个入口或者某个模块,这样的需求在开发业务需求中多如牛毛,那你是如何来优雅的实现的呢,本文将给大家介绍Flutter中显示条件Widget的实现方式,需要的朋友可以参考下。在 Flutter 日常开发中经常会遇见这样的需求,如: 只有用户是 VIP 时,才能展示某个入口或者某个模块。以上就是Flutter中显示条件Widget的实现方式的详细内容,更多关于Flutter显示Widget的资料请关注。

2024-07-21 21:22:11 4

转载 Android监控和阻断InputDispatching ANR的方法

首先,我们我们来定义一个Dialog,实际上,Dialog会影响状态栏和底部导航栏的样式,因此,对于Activity而言,为了避免Dialog和Activity的点击位置没法对齐,我们需要将Activity的一些样式同步到dialog上,下面是同步了全屏和非全屏两种,实际过程可能还需要同步其他几种。我们要知道,在Android系统中,Window层级越高,意味着权限越大,假设你的弹窗能展示在系统弹窗(如指纹识别弹窗)的上面,那么你就可以做一些看不见的事。一些人的代码,提前引入现有需求不需要的逻辑是否合理?

2024-07-21 21:19:07 4

转载 Android获取所在时区时间的两种方式

因此,如果你的自定义 Launcher 在获取时间时不准确,很可能是由于设备的网络时间同步设置出现了问题,而不是时区设置的问题。Android获取所在时区正确时间的方式有两种,通过wifi获取时间和通过通过GPS获取时间这两种方式,文中通过代码示例给大家的介绍的非常详细,需要的朋友可以参考下。在联网且系统设置了自动获取时间,自动获取时区的系统设置前提下,系统会自动更新正确的时间,当然如果你用了TextClock和DateClock也会自动更新。注意,下面的代码时在Fragment里面实现的。

2024-07-21 21:13:03 4

转载 android studio 清单配置文件androidmainfest.xml详细解读

在这种情况下,电子邮件应用的 Activity 启动,并且当用户完成操作时,您的 Activity startActivityForResult()(而非 startActivity())来启动 Activity。这些状态转变都是 Activity 生命周期的一部分。注:无法保证系统会在销毁您的 Activity 前调用 onSaveInstanceState(),因为存在不需要保存状态的情况(例如用户使用“返回”按钮离开您的 Activity 时,因为用户的行为是在显式关闭 Activity)。

2024-07-21 21:09:31 3

转载 Android Activity 入门简介

在这种情况下,电子邮件应用的 Activity 启动,并且当用户完成操作时,您的 Activity startActivityForResult()(而非 startActivity())来启动 Activity。这些状态转变都是 Activity 生命周期的一部分。注:无法保证系统会在销毁您的 Activity 前调用 onSaveInstanceState(),因为存在不需要保存状态的情况(例如用户使用“返回”按钮离开您的 Activity 时,因为用户的行为是在显式关闭 Activity)。

2024-07-20 21:40:02 5

转载 Android debug包运行正常release包崩溃的解决办法

到此这篇关于Android debug包运行正常release包崩溃的解决办法的文章就介绍到这了,更多相关Android release包崩溃内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持。这篇文章主要介绍了Android debug包运行正常,release包崩溃解决办法,文中通过代码示例介绍的非常详细,对大家解决问题有一定的帮助,需要的朋友可以参考下。原因:因为release版本下用了混淆,而gson解析需要的javabean,我忘了忽略混淆了,导致被混淆后,无法正正常解析.

2024-07-20 21:35:21 9

转载 Android AAPT(Android Asset Packaging Tool)详解

这边简单介绍一下ResourceTable这个数据结构,首先我们得知道R.java里面的资源标识id的构成,比方说 0x7f040002 其中0x7f表示是packageID,也就是上面的packageType,它是一个命名空间,限定资源的来源,7f表明是当前应用程序的资源,系统的资源是以0x01开头。-a表示会详细输出压缩文件中所有目录的内容,详细到什么程度的,可以看上图,上图截取的只是很小的一部分,这部分是manifest.xml文件的所有数据,可以看出来基本上所有的manifest信息都列了出来。

2024-07-20 21:31:23 7

转载 Android中不同状态页面管理优化技巧详解

添加到集合中,Android中选用SparseArray比HashMap更省内存,在某些条件下性能更好,主要是因为它避免了对key的自动装箱(int转为Integer类型),它内部则是通过两个数组来进行数据存储的,一个存储key,另外一个存储value,为了优化性能,它内部对数据还采取了压缩的方式来表示稀疏数组的数据,从而节约内存空间。注意,即使当你设置了多种不同状态视图,调用setContentView的时候,因为异常页面使用ViewStub,所以在绘制的时候不会影响性能的。

2024-07-20 21:22:08 5

转载 Android中ViewPager懒加载的优化详解

虽然这样,但是它的周期方法已经走完,那么我们只能手动的保存Fragment根View的引用,当再次重新进入新的声明周期方法时,返回原来的View。主要的方法是Fragment中的setUserVisibleHint(),此方法会在onCreateView()之前执行,当viewPager中fragment改变可见状态时也会调用,当fragment 从可见到不见,或者从不可见切换到可见,都会调用此方法,使用getUserVisibleHint() 可以返回fragment是否可见状态。

2024-07-20 21:13:16 5

转载 Android中ViewPager你所不知道的优化技巧分享

调用notifyDataSetChanged的后,会遍历旧的页面,通过getItemPosition方法返回的位置去决定当前遍历到的页面是否需要更新。如果返回值返回的是页面具体的位置,则更新当前页在刷新数据后的位置,将Tab栏选中的对应的Tab项选中。最近组里做新的Web容器的,一次承载多个H5页面,以实现左右切换,默认展示主会场页,并要达到提升打开率的目标。主会场首次加载的position是0,后续调整位置后变成了2,导致两次的Tag不一至,所以就出现了重复加载的问题。页面指的是哪个页面?

2024-07-20 21:05:02 4

转载 Android实现文件压缩与解压工具类

到此这篇关于Android实现文件压缩与解压工具类的文章就介绍到这了,更多相关Android文件压缩解压内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持。这篇文章主要为大家详细介绍了如何使用Android实现一个文件压缩与解压工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下。一个简单压缩解压工具类。

2024-07-20 21:02:19 6

转载 Android生成二维码工具类封装及使用

最近公司业务上有个生成二维码图片的需求(Android端),之后笔者在网上查阅了一些资料,实现了这个功能,这篇文章主要给大家介绍了关于Android生成二维码工具类封装及使用的相关资料,需要的朋友可以参考下。到此这篇关于Android生成二维码工具类封装及使用的文章就介绍到这了,更多相关Android生成二维码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持。2、给二维码添加logo的方法。一、生成二维码工具类封装。

2024-07-20 20:59:02 3

转载 Android开发者常见的UI组件总结大全

Android开发中UI组件是构建用户界面的基本元素,下面这篇文章主要给大家介绍了关于Android开发者常见的UI组件总结的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下。到此这篇关于Android开发者常见的UI组件总结的文章就介绍到这了,更多相关Android常见UI组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持。1.android:singleLine="true" 后面加省略号 android:ellipsize="middle" 设置省略号的位置。

2024-07-20 20:55:52 5

转载 Android使用AlertDialog实现弹出菜单的详细过程

到此这篇关于Android使用AlertDialog实现弹出菜单的文章就介绍到这了,更多相关Android AlertDialog实现弹出菜单内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持。在Android经常会用到AlertDialog,下面这篇文章主要给大家介绍了关于Android使用AlertDialog实现弹出菜单的详细过程,文中通过代码介绍的非常详细,需要的朋友可以参考下。原因:new AlertDialog.Builder(mContext) , crash。

2024-07-20 20:50:50 4

转载 Android binder 匿名服务实现双向通信的解决方案

了解了上面的背景知识后知道writeStrongBinder会导致在驱动中创建一个binder_node,那么我们可不可以直接在client和server通信的过程中,调用writeStrongBinder,而不需要通过添加服务在servicemanager中记录这个服务的信息呢?实现上面的需求,首先可以想到的是,client也向servicemanager注册一个服务,server中从servicemanager获取服务,这样client就变成了服务端,server就变成了客户端,不就可以实现吗?

2024-07-20 20:46:27 4

转载 Android使用DisplayManager创建虚拟屏流程及原理解析

虚拟屏通过这张Surface拿到Surface对应的Buffer,将上屏内容绘制到这个Buffer上,然后提交到画面流水线上(SurfaceFlinger)。虚拟屏幕的创建,Client端通过Surface告知的DisplayID,创建VirtualDisplay对象。DMS服务端,通过SurfaceFlinger创建虚拟屏,拿到SurfaceFligner的DisplayToken,然后通过它创建VirtualDisplayDevice + LogicalDisplay来管理虚拟屏幕。

2024-07-20 20:35:18 5

转载 Android Bugreport实现原理深入分析

然后在RunDumpsysCritical函数中,通过ServiceManager获取当前系统的Service,并调用Service的dump,将Service的dump信息输出到bugreport-*.tmp文件中。最后在FinalizeFile函数中,将临时文件Bugreport-.tmp,copy到zip中,并命名为Bugreport-.zip。在PrintHeader函数中,将bugreport-.txt中的头部信息输入到标准输出中,而标准输出已经重定向到了bugreport-.tmp文件中。

2024-07-20 14:18:35 8

转载 Android网络通信基础类源码分析讲解

Java层的实现在frameworks/base/core/java/android/os/Looper.java,该类中的sMainLooper变量存储了 主线程(或者叫UI线程)对应的Looper,可以通过getMainLooper取得。Looper从MessageQueue中依次取出Message,并告知Handler的handleMessage处理消息(想要看懂looper,涉及到其Native实现,这里不分析,可自行了解)通过上述代码中,可以看出。用于接收消息,并在关联的Looper,处理消息。

2024-07-20 14:11:06 7

转载 Android集成Unity的两种方案

注意,这样添加的UnityPlayer有一个无法解决的黑屏问题,因为Unity的渲染加载至少都需要4,5秒,期间我们只能在更上层的View里设置静态背景图覆盖上去,等Unity加载完毕,发送ready的回调之后,我们移除掉这个占位的静态图,展示Unity动效的界面。而且,两方通信链路和Unity的集成方式还有关,像下面要谈到的第一种进程隔离方案,就是通过集成全量的Unity依赖包,利用其中的JNI接口来通信的,而Client/Server架构就是通过Android的AIDL接口来和单独的服务端进程通信的。

2024-07-20 14:06:39 8

转载 规避Android开发中内存泄漏陷阱的解决方案

使用ApplicationContext避免持有Activity引用: 在单例对象中,尽量使用ApplicationContext而不是Activity的引用,以避免持有Activity的引用而导致内存泄漏。在Android开发中,如果单例对象持有了Activity或其他具有生命周期的对象的引用,并且没有在适当的时机释放这些引用,就会导致内存泄漏。使用弱引用持有Activity对象: 单例对象持有Activity对象的引用时,可以考虑使用弱引用来持有Activity对象,以避免强引用导致的内存泄漏问题。

2024-07-19 21:26:13 8

转载 Android系统升级的几种方式详解

recovery通过/cache/recovery/目录下的三个文件与主系统通信,增量升级过程中也需要借助于/cache分区存放临时文件.进入recovery 程序后,会先读取BCB的内容,失败再读取/cache/recovery/command的内容,以决定是否有特殊命令要执行。在update.zip签名时使用的公钥/私钥对不是公开的key(比如testkey)的情况下,因为用户无法得到正确的私钥,而且recovery使用的公钥随recovery.img发布,所以很难伪造签名来通过recovery验证。

2024-07-19 21:21:24 6

转载 Android 中的 Timer 和 TimerTask详解

在 Thread.sleep() 方法执行期间,Timer 线程无法从任务队列中检索任务,因此即使 t1 和 t2 任务已经被取消,它们也不会再被执行。Timer 是 Java 中用于创建定时任务的类,它位于 java.util 包中,可以使用Timer来安排一次性或定期执行的任务,这篇文章主要介绍了Android 的 Timer 和 TimerTask,需要的朋友可以参考下。Timer 线程是一个后台线程。解决这个问题需要创建一个新的 Timer 对象并使用新的 schedule() 方法安排新的任务。

2024-07-19 21:19:19 7

转载 android 预加载进程的实现方法

到此这篇关于android 预加载进程的文章就介绍到这了,更多相关android 预加载进程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持。这篇文章主要介绍了android 预加载进程的实现方法,大家需要注意清单文件中注册并制定 android:process 要预加载的进程,需要的朋友可以参考下。也就是说从一个进程activity跳转另一个进程的activity,会出现白屏或黑屏。在跳转之前,预加载进程,从而避免启动进程的时间。android:process 要预加载的进程。

2024-07-19 21:16:44 2

转载 Flutter 中的PageStorage小部件使用及最佳实践

在Flutter中,PageStorage小部件提供了一种方法来保存和恢复页面间的信息,这对于具有多个页面且需要在这些页面之间共享状态的应用程序非常有用,本文将详细介绍PageStorage的用途、如何使用它以及一些最佳实践,感兴趣的朋友跟随小编一起看看吧。在实际开发中,根据应用的具体需求,合理地使用PageStorage来优化你的应用吧。为PageStorage提供唯一标识符:你需要为你的PageStorage小部件提供一个唯一的标识符,这样它才能正确地保存和恢复状态。

2024-07-19 21:13:58 2

转载 android xml 定义渐变色背景的示例代码

到此这篇关于android xml 定义渐变色背景的文章就介绍到这了,更多相关android xml 定义渐变色背景内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持。在Android中,您可以使用XML来定义渐变色背景,以下是一个简单的例子,展示了如何使用shape drawable来创建一个线性渐变背景,感兴趣的朋友跟随小编一起看看吧。在Android中,您可以使用XML来定义渐变色背景。在这个例子中,我们将渐变背景设置为LinearLayout的背景。

2024-07-19 21:12:16 1

转载 Android Studio无法改变Button背景颜色解决办法

今天我来和大家探讨一个在Android开发中常见但可能让初学者感到困惑的问题,如何在Android Studio中改变Button的背景颜色,这个问题看似简单,但实际操作中可能会遇到一些意想不到的挑战,接下来,我将从多个角度为大家提供解决方案,需要的朋友可以参考下。因此,在设置Button背景颜色时,我们需要确保代码与XML布局中的设置一致,以实现预期的效果。为了美化界面,我们经常需要改变Button的背景颜色。如果主题样式中定义了Button的背景颜色或样式,那么我们在代码中设置的背景颜色可能会被覆盖。

2024-07-19 21:10:03 3

转载 Android读取串口数据的操作指南

我们定义了数据包类 Packet 和 DefaultPacket,并使用 PacketParser 接口来实现数据包的解析和验证。PacketInputStream 类负责处理数据包的读取和无效数据的累积,而 ReadThread 负责读取和处理有效数据包。在Android系统上读取串口数据是一个常见的需求,特别是当我们需要与硬件设备进行通信时,本文给大家介绍了Android读取串口数据的操作指南,文中有详细的步骤和代码示例,帮助你更好地理解和实现串口通信,需要的朋友可以参考下。一、确定串口号和波特率。

2024-07-19 21:08:15 3

转载 Android中设置WebView禁止缩放网页的步骤

在Android中如果你想要禁止WebView缩放网页,可以通过设置WebView的一些属性来实现,这篇文章主要给大家介绍了关于Android中设置WebView禁止缩放网页的步骤,需要的朋友可以参考下。到此这篇关于Android中设置WebView禁止缩放网页的文章就介绍到这了,更多相关WebView禁止缩放网页内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!如果你有控制网页内容的权限,可以在网页加载完成后,通过 JavaScript 禁用缩放功能。

2024-07-19 21:03:25 3

转载 android 应用退出时不播放动画的解决方法

在上面的示例中,我们重写了onBackPressed()方法,设置空白的窗口动画(overridePendingTransition(0, 0)),即将进入和退出动画参数都设置为0,这样在应用退出时不会显示任何动画效果。通过在AndroidManifest.xml文件中的activity标签的theme属性中设置为@android:style/Theme.NoDisplay,将应用的主题设置为无显示效果的主题,达到不播放退出动画的效果。本文将介绍如何在Android应用中禁止退出动画的播放。

2024-07-19 21:00:12 3

转载 Android文字匹配度算法及实际应用示例

本文介绍了Android应用中常用的文字匹配度算法Levenshtein Distance,并给出了实际应用示例,通过合理选择和应用文字匹配度算法,可以实现多种功能,提升用户体验,增强应用的实用性,需要的朋友可以参考下。总的来说,Levenshtein Distance算法是一种非常实用的算法,可以在多个领域帮助我们衡量字符串之间的相似程度,从而进行相关的处理和应用。假设我们有一个Android应用,需要实现文本搜索功能,用户输入一个关键词,应用需要在一组文本中找到最匹配的文本。

2024-07-19 20:57:55 1

转载 Android应用中实现跳转外部浏览器打开链接功能

在开发Android应用程序时,有时候我们需要让用户跳转到外部浏览器打开特定的链接,例如打开一个网页、下载文件等,本文将介绍如何在Android应用中实现跳转外部浏览器打开链接的功能,感兴趣的朋友一起看看吧。在开发Android应用程序时,有时候我们需要让用户跳转到外部浏览器打开特定的链接,例如打开一个网页、下载文件等。现在可以运行你的应用,并点击按钮测试跳转外部浏览器打开链接的功能。接下来,在对应的Activity或Fragment中编写Java代码,实现点击按钮后跳转到外部浏览器打开链接的功能。

2024-07-19 20:53:57 2

转载 Android多渠道打包配置方案

多渠道打包,顾名思义就是用来区分同一个软件,在不同渠道上的释放版本,目前我们有需求是要一套软件代码库多个项目共同使用,针对不同的项目打包不同的渠道apk,现学记录一下,需要的朋友跟着小编一起来学习吧。不同渠道的apk既然要做细微的功能上的区分,就需要在代码里能拿到一个类似键值对的标志位。gradle.kts语法与Groovy略有不同,要添加自己配置的东西一般是使用create,register之类的关键字,不熟悉配置的可以先试试。打包时,可以通过判断flavor的名称,来输出不同的apk名字。

2024-07-19 20:51:26 2

转载 Android 如何在私有空间创建文件

使用示例代码中的DiaryManager类,我们可以在应用的适当位置调用saveDiary()方法来保存用户的日记记录,例如用户点击保存按钮时。在Android应用程序中,我们经常需要在私有空间中创建文件来存储应用数据,例如用户配置文件、日志文件等,本文将介绍如何在Android应用中使用Java代码创建文件并将其保存在私有空间中,感兴趣的朋友跟随小编一起看看吧。参数b是一个整数,表示要写入的字节。在上面的代码中,我们创建了一个File对象,指定了在私有文件目录下创建名为example.txt的文件。

2024-07-19 20:48:38 1

转载 Android imageVIew实现镜像旋转的方法

在Android应用开发中,有时候我们需要对ImageView中的图片进行镜像旋转,以展示不同的效果,本文将介绍如何使用代码实现ImageView的镜像旋转效果,这篇文章主要介绍了Android imageVIew如何做镜像旋转,需要的朋友可以参考下。在Android应用开发中,有时候我们需要对ImageView中的图片进行镜像旋转,以展示不同的效果。android:src:设置ImageView显示的图片资源,可以是本地的 drawable 资源、网络图片的URL或通过代码设置的Bitmap对象。

2024-07-19 20:44:59 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除