# FreeSnack **Repository Path**: ym521/free-snack ## Basic Information - **Project Name**: FreeSnack - **Description**: 自由控制的Snack - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-02 - **Last Updated**: 2024-10-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: Snack ## README # FreeSnack #### 介绍 Android Toast 不再支持自定义的原因主要是出于设计和用户体验的考虑。在过去,开发人员可以通过 setView() 方法来自定义 Toast 的外观和布局。然而,随着 Android 的发展,官方决定逐步限制和禁止自定义 Toast 的功能。 这一决策的背后有几个主要原因: 1、一致性和用户体验:自定义 Toast 可能导致应用程序界面的不一致性,影响用户体验。官方希望通过限制自定义来确保 Toast 在不同应用程序中的外观和行为保持一致。 2、简化开发:自定义 Toast 需要开发人员投入更多的时间和精力来设计和实现。通过限制自定义,官方希望简化开发过程,减少开发人员的负担。 3、替代方案:虽然不再支持自定义 Toast,但官方提供了其他替代方案,如 Snackbar。Snackbar 是一种更现代、更灵活的界面组件,可以用于显示类似的简短消息和提示信息。官方鼓励开发人员使用 Snackbar 来替代自定义 Toast。 需要注意的是Snackbar原生显示只能存在底部,无法想Toast那样显示在屏幕的顶部、中间、底部;所以 我推出可以自由控制显示位置的的FreeSnack。 #### 安装教程 1. 添加jitpack 仓库: Android Gradle Plugin 为 v7.1.0 以下版本:进入项目根目录,打开 “build.gradle” 文件,在 “allprojects” 中加入如下代码: ```xml ... allprojects { repositories { maven { url 'https://jitpack.io' } mavenCentral() google() } } ``` 当您的 Android Gradle Plugin 为 v7.1.0 或以上版本:进入项目根目录,打开 “settings.gradle” 文件,在 “dependencyResolutionManagement” 中加入如下代码: ```xml ... dependencyResolutionManagement{ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { maven { url 'https://jitpack.io' } mavenCentral() google() } } ``` 2. 添加依赖: 最新版本[![](https://jitpack.io/v/com.gitee.ym521/free-snack.svg)](https://jitpack.io/#com.gitee.ym521/free-snack) ```xml ...dependencies { ... implementation "com.gitee.ym521:free-snack:Latest version" } ``` #### 使用说明 1. 顶部显示 FreeSnack.show(view,"我在顶部",FreeSnackTime.SHORT,FreeSnack.TOP) 2. 中间显示 FreeSnack.show(view,"我在顶部",FreeSnackTimeSHORT,FreeSnack.CENTER) 3. 底部显示 FreeSnack.show(view,"我在顶部",FreeSnackTime.SHORT,FreeSnack.TOP) #### 参数说明 ```xml 参数解释: FreeSnack.show(view: View, content: String, freeSnackTime: FreeSnackTime, gravity: Int) @param view :建议使用根布局 View,不然会造成底部显示出现问题, 推荐在BaseActivity下进行封装,结合ViewBinding使用root作为view的实参。 @param content: 需要显示的数据 @param freeSnackTime:显示的时间 @param gravity:显示的位置 ``` #### 新增Activity和Fragment的扩展使用 ```xml 格式: toToast+位置+时间() 例如: 短时间显示在中部 FreeSnackTheme 有两种主题 白背景(LIGHT)和黑背景 (DARK) toToastCenterShort("我是中间FreeSnack",FreeSnackTheme.LIGHT) ```