问题标签 [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.
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.
android - 将 Snackbar 用于 5.0+ 设备
所以我想创建一个仅支持 Lollipop 及以上设备的应用程序。
但是我有一个用例需要Snackbar
带有 UNDO 选项。阅读后,似乎我必须:
- 使用一个
CoordinatorLayout
(支持库之一) - 使用
AppCompatActivity
,而不是Activity
- 使用
Theme.AppCompat.(...)
代替android:Theme.Material
- 更改应用程序中的所有其他视图,包括
ActionBar
只是为了兼容AppCompat
(有点讽刺)
这真的是使用基本功能的唯一方法Snackbar
- 必须在其他地方重写所有内容吗?
请告诉我有更好的出路。这没有任何意义!
android - 使用 MrEngineer13 的 SnackBar 库实现
我正在使用@MrEngineer13 的SnackBar 实现,并且想知道如何捕获 2 个单独的“ActionClick”事件 - 根据 actionclick 事件发生的时间,我需要做不同的事情。
建造者看起来像这样 -
并且 onMessageClick 采用“令牌”参数 -
我无法弄清楚的是,当点击发生时如何传递这个“令牌”。
android - 嵌套 CoordinaterLayout 隐藏快餐栏
我有一个父视图,其根视图是CoordinatorLayout
. 父布局包含 aTabLayout
和 a ViewPager
。ViewPager
包含两个子片段。子片段也有一个CoordinatorLayout
作为其根视图并包含一个RecyclerView
. 这是我的xml文件:
家长:
孩子:
现在,当我尝试SnackBar
从子片段中显示 a 时,它不会显示并且隐藏在屏幕外。如果我滚动子片段,TabLayout
则父片段中的 会折叠(按预期)并SnackBar
出现。我四处搜索,它的行为与此类似:Android Design Support Library FAB in a ViewPager Fragment with Coordinator Layout除了SnackBar
完全隐藏之外。我认为这是因为TabLayout
和SnackBar
具有相同的高度。
如何设置布局以便SnackBar
显示?
这解释起来有点复杂,所以如果我能澄清任何部分,请告诉我。
android - Android:显示工具栏时显示小吃栏
当您不向上滚动时,这是whatsapp。工具栏正在显示,它下面的选项卡布局也是如此。
屏幕截图1:
一旦你向上滚动,这就是whatsapp。可以看到工具栏是隐藏的。
屏幕截图2:
有一个指南向您展示如何创建此效果。我已经遵循它并在我的应用程序中获得了这种效果。
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:
android - 如何在 Snackbar 或 Toast / Textview 中显示表情符号/表情符号
我正在尝试在 Snackbar/Toast 通知中添加表情符号/表情符号。做这个表情需要图片资源或者Unicode字符。当我使用来自以下网站Unicode Character Website的 unicode 字符时,我得到了字符串输出。
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
方法不允许这样做。
有没有人成功解决过类似的问题?
android - 使用 SnackBar 实例再次显示
脚步
我可以像这样保存 SnackBar 实例:
第一次使用这个很容易地显示它:mSnackBar.show();
问题
但是在我用这个清除这个小吃之后:mSnackBar.dismiss()
它没有在LOLLIPOP设备中再次显示,在JELLYBEAN
模拟器中再次显示(需要时使用show()
),这是预期的行为。
问题
请帮我找出LOLLIPOP设备在此过程中的错误或缺失?
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.measureChildHorizontal(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() 调用,看看这是否会产生影响,但它没有。