問題タブ [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 - スナックバーが表示されない
私はBaseActivity
他のすべての活動を継承しています。
activity_base.xml
アクティビティ以外のクラスからアクセスしようとすると、スナックバーが表示されません。
android - 5.0 以降のデバイスで Snackbar を使用する
Lollipop以降のデバイスのみをサポートするアプリを作成したいと考えています。
Snackbar
しかし、UNDO オプションを使用する必要があるユース ケースがあります。読んだ後、私はしなければならないようです:
- 使用する
CoordinatorLayout
(サポート ライブラリ 1) - を使用し、使用
AppCompatActivity
しないActivity
Theme.AppCompat.(...)
の代わりに使用android:Theme.Material
- アプリ内の他のすべてのビューへの変更(ちょっと皮肉なことに)との
ActionBar
互換性だけを含むAppCompat
Snackbar
これは、他の場所ですべてを書き直さなければならないような基本的な機能を使用する唯一の方法ですか?
もっと良い方法があることを教えてください。これだけでは意味がありません!
android - スナックバー: 表示されているスナックバーを識別する方法
レイアウトを実装する recyclerview がありswipetorefresh
ます。リストを指で下にスワイプすると、新しい投稿が読み込まれます。またonloadmorelistener
、私の recyclerview をページネーションする機能もあります。recyclerview を指で上にスワイプすると、古い投稿が読み込まれます。
snackbar
ユーザーがオフラインで、古い投稿や新しい投稿の読み込みなど、ある種のネットワーク アクティビティを完了しようとすると、「インターネットがありません」という通知を表示する通知を作成しようとしています。
インターネットがなく、ユーザーがリサイクラー ビューを上にスワイプしてから下にスワイプすると、同じ「インターネットがありません」というメッセージを表示する 2 つのスナックバー通知が表示されます。実際には、代わりに表示したいだけです。
したがって、スナックバーに表示されるテキストを識別するための独自の方法を探しています。テキストが両方のスナックバーで同じ場合、1 つのスナックバーのみが表示されますが、getText()
スナックバーにはメソッドがなく、http のみsetText()
が表示されます。 ://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 - スナックバー - Show() が呼び出された後に致命的な例外でクラッシュする
アプリにスナックバーを表示するための次のコードがあります。
これは私のコードから参照されているコーディネーター レイアウトです (これは私のレイアウトに含まれていることに注意してください - 単独では使用されていません)。
Android MおよびAPI 22より前でテストするまで、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: null オブジェクト参照 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): at 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(Native Method) 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(Native Method) 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(Native Method) 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() 呼び出しを削除して、効果があるかどうかを確認しようとしましたが、効果はありません。