问题标签 [android-snackbar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
15173 浏览

android - Snack bar not displayed

I'm inheriting from BaseActivity for all the other activities.

activity_base.xml

Snackbar is not displayed when tried to access from a non-activity class.

0 投票
2 回答
372 浏览

android - 将 Snackbar 用于 5.0+ 设备

所以我想创建一个支持 Lollipop 及以上设备的应用程序。

但是我有一个用例需要Snackbar带有 UNDO 选项。阅读后,似乎我必须:

  • 使用一个CoordinatorLayout(支持库之一)
  • 使用AppCompatActivity,而不是Activity
  • 使用Theme.AppCompat.(...)代替android:Theme.Material
  • 更改应用程序中的所有其他视图,包括ActionBar只是为了兼容AppCompat(有点讽刺)

这真的是使用基本功能的唯一方法Snackbar- 必须在其他地方重写所有内容吗?

请告诉我有更好的出路。这没有任何意义!

0 投票
1 回答
26 浏览

android - 使用 MrEngineer13 的 SnackBar 库实现

我正在使用@MrEngineer13 的SnackBar 实现,并且想知道如何捕获 2 个单独的“ActionClick”事件 - 根据 actionclick 事件发生的时间,我需要做不同的事情。

建造者看起来像这样 -

并且 onMessageClick 采用“令牌”参数 -

我无法弄清楚的是,当点击发生时如何传递这个“令牌”。

0 投票
1 回答
1102 浏览

android - 嵌套 CoordinaterLayout 隐藏快餐栏

我有一个父视图,其根视图是CoordinatorLayout. 父布局包含 aTabLayout和 a ViewPagerViewPager包含两个子片段。子片段也有一个CoordinatorLayout作为其根视图并包含一个RecyclerView. 这是我的xml文件:

家长:

孩子:

现在,当我尝试SnackBar从子片段中显示 a 时,它不会显示并且隐藏在屏幕外。如果我滚动子片段,TabLayout则父片段中的 会折叠(按预期)并SnackBar出现。我四处搜索,它的行为与此类似:Android Design Support Library FAB in a ViewPager Fragment with Coordinator Layout除了SnackBar完全隐藏之外。我认为这是因为TabLayoutSnackBar具有相同的高度。

如何设置布局以便SnackBar显示?

这解释起来有点复杂,所以如果我能澄清任何部分,请告诉我。

0 投票
3 回答
2346 浏览

android - Android:显示工具栏时显示小吃栏

当您不向上滚动时,这是whatsapp。工具栏正在显示,它下面的选项卡布局也是如此。

屏幕截图1:

whatsapp1

一旦你向上滚动,这就是whatsapp。可以看到工具栏是隐藏的。

屏幕截图2:

whatspp2

有一个指南向您展示如何创建此效果。我已经遵循它并在我的应用程序中获得了这种效果。

https://mzgreen.github.io/2015/06/23/How-to-hideshow-Toolbar-when-list-is-scrolling(part3)/

来自指南的链接

我的问题是当您在SCREENSHOT1中显示工具栏时显示一个快餐栏。当我尝试在工具栏显示时显示小吃栏时,它实际上显示在屏幕下方,因此用户看不到它。只有当用户向上滚动并隐藏工具栏时,小吃栏才会可见。

我用于我的应用程序的 xml 类似于指南https://github.com/mzgreen/HideOnScrollExample/blob/master/app/src/main/res/layout/activity_part_three.xml中使用的那个。我已经按照以下链接复制并粘贴了代码:

有谁知道当工具栏可见时我如何显示小吃栏?

编辑:

因为布局方案包含选项卡布局,并且每个选项卡布局都显示一个片段,所以我试图显示每个片段的小吃栏,而不是在活动级别。我实际上开始认为这可能无法显示每个片段的小吃栏,这实际上可能需要通过将这 3 个片段中的每个片段的侦听器绑定到主要活动来完成,然后小吃栏必须只显示在改为主要活动。

这是我的片段之一的 xml:

0 投票
1 回答
6596 浏览

android - 如何在 Snackbar 或 Toast / Textview 中显示表情符号/表情符号

我正在尝试在 Snackbar/Toast 通知中添加表情符号/表情符号。做这个表情需要图片资源或者Unicode字符。当我使用来自以下网站Unicode Character Website的 unicode 字符时,我得到了字符串输出。

0 投票
2 回答
6141 浏览

android - Snackbar:如何识别显示的是哪个snackbar

我有一个实现swipetorefresh布局的 recyclerview - 如果您在列表中向下滑动手指,它将加载更新的帖子。它还有一个onloadmorelistener用于对我的 recyclerview 进行分页的功能——如果你在 recyclerview 上滑动手指,它会加载较旧的帖子。

我正在尝试构建一个snackbar通知,如果用户离线并且他尝试完成某种类型的网络活动,例如加载旧帖子或新帖子,则会出现小吃栏,告诉他“没有互联网”。

在没有互联网的情况下,用户在 recyclerview 上向上滑动和向下滑动,会显示两个显示相同“无互联网”消息的小吃店通知。实际上,我只想显示一个。

因此,我正在寻找一些独特的方法来识别小吃栏中显示的文本,这样如果两个小吃栏中的文本相同,则只会显示一个小吃栏,但小吃栏中没有getText()方法,只有setText()http ://developer.android.com/intl/es/reference/android/support/design/widget/Snackbar.html

我还看到有回调方法: http: //developer.android.com/intl/es/reference/android/support/design/widget/Snackbar.Callback.html但在我的场景中似乎没有任何帮助。

我希望有一个独特的标志,当它被创建用于识别目的时,我可以给它,但该Snackbar.make方法不允许这样做。

有没有人成功解决过类似的问题?

0 投票
2 回答
416 浏览

android - 如何为图像按钮的图标赋予强调色?

我正在关注材料设计教程和图标来开发应用程序,但我发现一个应用程序可以在点击时更改图标颜色。我也想这样做。我怎么能建造这样的东西?请帮我解决这个问题,按钮点击小吃栏的颜色也会改变。

在此处输入图像描述

谢谢

0 投票
1 回答
3518 浏览

android - 使用 SnackBar 实例再次显示

脚步

我可以像这样保存 SnackBar 实例:

一次使用这个很容易地显示它:mSnackBar.show();


问题

但是在我用这个清除这个小吃之后:mSnackBar.dismiss()

它没有在LOLLIPOP设备中再次显示,在JELLYBEAN
模拟器中再次显示(需要时使用show()),这是预期的行为。


问题

请帮我找出LOLLIPOP设备在此过程中的错误或缺失?

0 投票
1 回答
751 浏览

c# - Android - Snackbar - 在调用 Show() 后崩溃并出现致命异常

我有以下代码用于在我的应用程序中显示 Snackbar。

这是从我的代码中引用的协调器布局(请注意,这包含在我的布局中 - 它不是单独使用的):

一切都在 API 22 上运行良好,直到我在 Android M 和 API 22 之前测试它(可能不是主要原因)。在 Show() 被调用后,应用程序崩溃并出现以下异常。

01-01 15:10:45.454 E/AndroidRuntime(2482):致命例外:主要 01-01 15:10:45.454 E/AndroidRuntime(2482):进程:com.psonar.android,PID:2482 01-01 15: 10:45.454 E/AndroidRuntime(2482):java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int android.text.Layout.getLineCount()” 01-01 15:10:45.454 E/AndroidRuntime( 2482): 在 android.support.design.widget.Snackbar$SnackbarLayout.onMeasure(Snackbar.java:707) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.view.View.measure(View. java:18788) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:610) 01-01 15:10:45。454 E/AndroidRuntime(2482):在 android.widget.LinearLayout.measureVertical(LinearLay01-01 15:10:45.454 E/AndroidRuntime(2482):在 android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:677 ) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.widget.RelativeLayout.measureChildHorizo​​ntal(RelativeLayout.java:715) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.widget .RelativeLayout.onMeasure(RelativeLayout.java:461) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.view.View.measure(View.java:18788) 01-01 15:10:45.454 E /AndroidRuntime(2482):在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)01-01 15:10:45.454 E/AndroidRuntime(2482):在 android.widget.FrameLayout.onMeasure(FrameLayout.java:194 ) 01-01 15:10:45.454 E/AndroidRuntime(2482):在 android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.view.View.measure(View.java:18788) 01 -01 15:10:45.454 E/AndroidRuntime(2482): 在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.widget.LinearLayout .measureChildBeforeLayout(LinearLayout.java:1465) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.widget.LinearLayout.measureVertical(LinearLayout.java:748) 01-01 15:10:45.454 E/AndroidRuntime (2482): 在 android.widget.LinearLayout.onMeasure(LinearLayout.java:630) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.view.View.measure(View.java:18788) 01 -01 15:10:45.454 E/AndroidRuntime(2482):在 android.view.ViewGroup。measureChildWithMargins(ViewGroup.java:5951) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 01-01 15:10:45.454 E/AndroidRuntime( 2482): 在 android.view.View.measure(View.java:18788) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 01- 01 15:10:45.454 E/AndroidRuntime(2482):在 android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) 01-01 15:10:45.454 E/AndroidRuntime(2482):在 android.widget.LinearLayout。 measureVertical(LinearLayout.java:748) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.widget.LinearLayout.onMeasure(LinearLayout.java:630) 01-01 15:10:45.454 E/AndroidRuntime( 2482):在 android.view.View.measure(View.java:18788)01-01 15:10:45。454 E/AndroidRuntime(2482):在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)01-01 15:10:45.454 E/AndroidRuntime(2482):在 android.widget.FrameLayout.onMeasure(FrameLayout.java :194) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643) 01-01 15:10:45.454 E/AndroidRuntime (2482):在 android.view.View.measure(View.java:18788)01-01 15:10:45.454 E/AndroidRuntime(2482):在 android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2100)01 -01 15:10:45.454 E/AndroidRuntime(2482):在 android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1216)01-01 15:10:45.454 E/AndroidRuntime(2482):在 android.view.ViewRootImpl .performTraversals(ViewRootImpl.java:1452)01-01 15:10:45.454 E/AndroidRuntime(2482):在 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013) 01-01 15:10:45.454 E/AndroidRuntime(2482):在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)01-01 15:10:45.454 E/AndroidRuntime(2482):在 android.view.Choreographer .doCallbacks(Choreographer.java:670)01-01 15:10:45.454 E/AndroidRuntime(2482):在 android.view.Choreographer.doFrame(Choreographer.java:606)01-01 15:10:45.454 E/AndroidRuntime (2482):在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)01-01 15:10:45.454 E/AndroidRuntime(2482):在 android.os.Handler.handleCallback(Handler.java:739 ) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.os。Handler.dispatchMessage(Handler.java:95) 01-01 15:10:45.454 E/AndroidRuntime(2482): 在 android.os.Looper.loop(Looper.java:148) 01-01 15:10:45.454 E/ AndroidRuntime(2482):在 android.app.ActivityThread.main(ActivityThread.java:5417)01-01 15:10:45.454 E/AndroidRuntime(2482):在 java.lang.reflect.Method.invoke(本机方法)01 -01 15:10:45.454 E/AndroidRuntime(2482):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)01-01 15:10:45.454 E/AndroidRuntime(2482):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)454 E/AndroidRuntime(2482):在 java.lang.reflect.Method.invoke(本机方法)01-01 15:10:45.454 E/AndroidRuntime(2482):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller。运行(ZygoteInit.java:726)01-01 15:10:45.454 E/AndroidRuntime(2482):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)454 E/AndroidRuntime(2482):在 java.lang.reflect.Method.invoke(本机方法)01-01 15:10:45.454 E/AndroidRuntime(2482):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller。运行(ZygoteInit.java:726)01-01 15:10:45.454 E/AndroidRuntime(2482):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

我尝试从我的代码中删除 Dispose() 调用,看看这是否会产生影响,但它没有。