首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android如何指定SnackBar屏幕的位置及小问题解决

Android指定SnackBar屏幕的位置 Snackbar 常以一个小的弹出框的形式,出现在手机屏幕下方或者桌面左下方,并且是屏幕所有层的最上方。...如果要指定它在屏幕出现的位置,可以把SnackBar放置android.support.design.widget.CoordinatorLayout内。...FrameLayout.LayoutParams l = (FrameLayout.LayoutParams) v.getLayoutParams(); 当然自己写显示在上边很麻烦的,还要处理显示及隐藏动画 Snackbar.Java...先记一下,如果项目用到就把这个下载来改改 design_layout_snackbar.xml 里面有句 android:layout_gravity="bottom" 这个一定要记得改成 top...然后就是相应的动画 R.anim.design_snackbar_in 和 R.anim.design_snackbar_out 不过这两个都是 Build.VERSION.SDK_INT <Build.VERSION_CODES.ICE_CREAM_SANDWICH

4.2K20

Snackbar使用详解及其相关框架TSnackbar

简述:     Snackbar 是 Android design support library 的一个组件,它的作用和Toast类似,显示吐司,但Snackbar的特别之处在于Snackbar...他们屏幕的底部显示一条简短的信息,如果是较大的设备就显示左下角。SnackBar出现在屏幕中所有其他元素的上方,同一时间仅仅只有一条SnackBar”。...:一个是onShow()Snackbar显示时回调,另一个是onDismissed()Snackbar隐藏时回调。...另外一点就是onDismissed()方法可以监听到Snackbar退出的五种原因类型:         ①Snackbar.Callback.DISMISS_EVENT_SWIPE=0:...系统默认的Snackbar屏幕底部弹出的,如果想要改变其弹出位置可以将其父控件置于想要弹出的屏幕位置,但是即使这样做也不能改变动画,现在介绍一个顶部弹出的Snackbar框架TSnackbar,github

2.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

Android 自定义 Snackbar

Snackbar: Android 官方的一个控件, Android 应用也算很常见了,用来显示应用交互中正在发生的消息,跟 Toast 类似,又有所区别,关于它的简单介绍和使用见上篇。...") Log.i("yyyyy", "animateContentOut delay = $delay || duration = $duration") } } 在这里可以代码本身自定义...Snackbar 的内容,更改文本消息,更新图像。...默认情况就是我们 xml 定义的,可以看出来,我这里示例并没有做任何的修改,当然需要修改成啥还是根据需求来吧,可以灵活的给外部提供方法调用修改内容或者是图片。...这里 ContentViewCallback 也有两个实现,分别为 animateContentIn 和 animateContentOut,它们是 Snackbar 的内容屏幕上出现和消失时产生一些动画

1.3K10

Flutter Widgets 之 SnackBa

Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 基础用法 应用程序有时候需要弹出消息提示用户,比如‘网络连接失败’、‘下载成功’等提示,就像Android 等Toast,Flutter...中使用SnackBar组件,用法如下: Scaffold.of(context).showSnackBar(SnackBar( content: Text('老孟,一枚有态度的程序员'),...)); 注意并不是build方法中直接使用SnackBar组件,而是调用Scaffold.of(context).showSnackBar方法,消息会在底部弹出并显示一段时间,默认显示4秒..., )); 显示的时间为1秒,content属性不一定是文字,也可以是其他组件,比如显示一个图标和文字: Scaffold.of(context).showSnackBar(SnackBar(...增加行为组件,比如增加一个“知道了”按钮,点击“知道了”,消息马上隐藏,用法如下: Scaffold.of(context).showSnackBar(SnackBar( content:

1K00

Material Design —Snackbars &Toasts

自上次参加完回音分享会后,我下定决心要洗心革面乖乖打基础,于是开启了这个part,争取两个月不间断更新,写完Material Design与iOS组件(顺便学学英语),以便今后使用的时候完全不虚...Snackbar包含与所执行的操作直接相关的单行文本。 它们可能包含操作文本,但不包含icon。 Toast(仅限Android)主要用于系统消息传递。 它们也显示屏幕的底部,但不能从屏幕滑走。...用法 一次只能显示一个snackbar。 每个snackbar可能包含一个单独的操作,但不会是“关闭”或“取消”。 行为 Snackbars激活后屏幕的底部向上滑出。...短暂的 Snackbars超时后自动屏幕消失。 出于可用性原因,Snackbars不应该成为访问核心情形的唯一途径。 它们不应该是长时间存在或堆叠的,因为它们屏幕上的其他元素之上。...如果Snackbar描述的操作重要到需要阻止用户使用屏幕,则应该使用Dialog。 ?

1K60

Flutter 可定制的时间规划器

移动应用程序很多情况下,用户需要输入出生日期、订票、安排会议等日期。 在在这个博客,我们将**探索 Flutter 可定制的时间规划器。...每行显示一个小时,每列显示一天,但您可以更改该部分的标题并显示您需要的任何其他内容。 此演示视频展示了如何在 Flutter 创建可自定义的时间规划器。...属性 时间规划器的一些属性是: 「startHour」用来计时从这个开始,它会1开始。 「endHour」用来计时结束在这个时间,最大值为24。...「setState」 方法内,给集合 tasks 添加 「TimePlannerTask」 组件,在这个组件,添加颜色、日期时间、minutesDuration 和 daysDuration。...; } 下面我们将添加 「TimePlanner」 组件,设置其 startHour, endHour, 和 headers,然后添加 「TimePlannerTitle」 组件, TimePlanner

1.6K20

Material Design 实战 之第三弹—— 悬浮按钮和可交互提示

官方给出的示例,最简单且最具代表性的立面设计就是悬浮按钮了,这种按钮不属于主界面平面的一部分,而是位于另外一个维度的,因此就会给人一种悬浮的感觉。...下面实战悬浮按钮的点击事件: MainActivity的onCreate()添加以下代码: //悬浮按钮点击事件 FloatingActionButton fab = (FloatingActionButton...第二个参数就是Snackbar显示的内容, 第三个参数是Snackbar显示的时长。 这些和Toast都是类似的。...可以看到,Snackbar屏幕底部出现了,上面有我们所设置的提示文字,还有一个Undo按钮,按钮是可以点击的。 ? 过一段时间后Snackbar会自动屏幕底部消失。...其实道理很简单,还记得我们Snackbar的make()方法传入的第一个参数吗?

1.7K30

Flutter 构建完整应用手册-处理手势

实现划动消除 “划动消除”模式很多移动应用很常见。 例如,如果我们正在编写一个电子邮件应用程序,我们可能希望允许我们的用户列表划离邮件消息。...创建一个数据源 我们的例子,我们需要20个样品条目。 为了简单起见,我们将生成一个字符串列表。...现在我们正在显示项目列表,我们希望让用户能够将每个项目列表移除!...用户将该项目删除后,我们需要运行一些代码以列表删除该项目并显示Snackbar真实的应用程序,您可能需要执行更复杂的逻辑,例如从Web服务或数据库删除项目。...我们的例子,我们将更新我们的itemBuilder函数以返回一个Dismissible部件。

1.8K20

AndroidSnackbar的使用方法及小技巧

要使用Snackbar,需要在项目的build.gradle添加依赖 dependencies { compile 'com.android.support:design:23.4.0' } Snackbar...Snackbar snackbar) { super.onShown(snackbar); // Snackbar打开时回调 } }); sb.show(); Snackbar还支持滑出删除,...是也不是,为啥这么说呢,Snackbar确实是CoordinatorLayout底部显示的,但并不等于是屏幕顶部 首先我们要知道Snackbar显示的原理是什么 之前介绍的第一个传进去的参数...我们可以做个小实验验证一下 传入的View控件外面套一层CoordinatorLayout <android.support.design.widget.CoordinatorLayout...}'s view. */ @NonNull public View getView() { return mView; } 这里返回的mView其实是一个SnackbarLayout布局,SnackbarLayout

5.7K11

Toast问题深度剖析(二)

Android 系统似乎也意识到了这一点,新版本的系统更新,限制了很多在桌面提示窗口相关的权限。所以,体验上考虑,这个情况并不属于问题。 “那么我们可以选择哪些窗口的类型呢?”...使用子窗口: Android 进程内,我们可以直接使用类型为子窗口类型的窗口。 Android 代码的直接应用是 PopupWindow 或者是 Dialog 。...这也是我们今天重点讲的方案 “如果采用 View 系统方案,那么我要往哪个控件添加我的 Toast 控件呢?” Android进程,我们所有的可视操作都依赖于一个 Activity 。...也就是说你的最后一个 SnackBar 将被 SnackBarManager 持有至少 20s。而 SnackBar 又存在有父控件 mTargetParent 的强引用。...不过,有了上面的知识储备,我们完全可以写一个自己的 Snackbar。 4.基于Toast的改法 第一篇文章我们知道,我们直接在 Toast.show 函数外增加 try-catch 是没有意义的。

4.9K124

Flutter 刷新页面:通过下拉刷新提升用户体验

Flutter 响应式框架能够在数据更改时,更新应用程序的用户界面。 下拉刷新管理数据 为了有效联合下拉刷新来管理状态,我们可以众多 Flutter 生态中选择其中一种。...它可以从父挂件获取数据,管理状态并在页面之间导航。当实现下拉刷新,我们经常需要 BuildContext 来触发状态的更改或者刷新后导航到不同的屏幕。... onRefresh 方法处理错误也是很重要的。如果在数据获取过程中发生错误,我们应该优雅地处理并为用户提供反馈,比如展示一个错误信息或者一个 SnackBar。...发生错误时向用户提供清晰且信息丰富的反馈至关重要。比如 SnackBar,一个警告对话框,或者列表错误的挂件。旨在告知用户一个错误发生了,如果可能,我们还需要提供解决方案。...为了充分利用热加载,请使用模块化构建代码,不同函数或者类中分离获取刷新数据逻辑和更新 UI。这会让我们独立更改和测试小块代码,降低引入错误的风险并加快开发过程。

13410
领券