导航切换动画调整
将默认的淡入淡出动画效果替换为更接近iOS风格的侧滑动画,提升页面切换的流畅度和视觉体验。
**具体变更:**
* **页面进入:** 新页面从右侧滑入。
* **页面退出:** 当前页面向右侧滑出,前一页面从左侧轻微偏移处滑回。
* **动画时长:** 统一设置为280毫秒。
**影响范围:**
* 图片详情页 (`ImagePagerScreen`)
* 创建群聊页 (`CreateGroupChatScreen`)
**其他优化:**
* **创建群聊页UI调整:**
* 群聊名称输入框样式统一,采用圆角灰色背景。
* 底部创建按钮适配导航栏高度。
* 列表区域自适应填满剩余空间,防止内容被遮挡。
* 选择成员列表项固定高度,避免选中状态变化时布局跳动。
* 为头像和选择框添加默认图和占位图。
* **ImageLoader优化:**
* 实现全局共享的 `ImageLoader` 实例,避免重复创建,提高内存缓存利用率。
* **列表性能优化:**
* 为好友列表和AI助手列表的 `items` 添加 `key`,提升列表项更新效率。
* **资源清理调整:**
* 移除了在离开首页和动态页时全量清理资源的操作,以避免返回时列表重置或不必要的重新加载。
* **ProfileV3页代码清理:**
* 移除未使用的导入。
This commit is contained in:
@@ -16,6 +16,8 @@ import java.util.UUID
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
object Utils {
|
||||
// 全局共享的 ImageLoader,避免每次创建导致内存缓存不共享
|
||||
private var sharedImageLoader: ImageLoader? = null
|
||||
fun generateRandomString(length: Int): String {
|
||||
val allowedChars = ('A'..'Z') + ('a'..'z') + ('0'..'9')
|
||||
return (1..length)
|
||||
@@ -24,23 +26,18 @@ object Utils {
|
||||
}
|
||||
|
||||
fun getImageLoader(context: Context): ImageLoader {
|
||||
val appContext = context.applicationContext
|
||||
val existing = sharedImageLoader
|
||||
if (existing != null) return existing
|
||||
|
||||
val okHttpClient = getUnsafeOkHttpClient(authInterceptor = AuthInterceptor())
|
||||
return ImageLoader.Builder(context)
|
||||
val loader = ImageLoader.Builder(appContext)
|
||||
.okHttpClient(okHttpClient)
|
||||
.memoryCachePolicy(CachePolicy.ENABLED)
|
||||
.diskCachePolicy(CachePolicy.ENABLED)
|
||||
// .memoryCache {
|
||||
// MemoryCache.Builder(context)
|
||||
// .maxSizePercent(0.25) // 设置内存缓存大小为可用内存的 25%
|
||||
// .build()
|
||||
// }
|
||||
// .diskCache {
|
||||
// DiskCache.Builder()
|
||||
// .directory(context.cacheDir.resolve("image_cache"))
|
||||
// .maxSizePercent(0.02) // 设置磁盘缓存大小为可用存储空间的 2%
|
||||
// .build()
|
||||
// }
|
||||
.build()
|
||||
sharedImageLoader = loader
|
||||
return loader
|
||||
}
|
||||
|
||||
fun getTimeAgo(date: Date): String {
|
||||
|
||||
Reference in New Issue
Block a user