【问题标题】:floating action button doesnt show with show()?浮动操作按钮不显示显示()?
【发布时间】:2019-11-15 15:38:15
【问题描述】:

我正在使用 Android 原生 sip 堆栈创建一个简单的 sipcall。我希望在成功的 sip 连接上显示一个特定的浮动操作按钮,并在不成功的 sip 连接上隐藏相同的浮动操作按钮。默认情况下会显示浮动操作按钮。一些如何显示部分不起作用并且找不到任何解决方案的原因。正在使用 android 版本 27。以下是 sip 配置文件的部分实现。

                        /**
                         * Name: onRegistrationDone
                         * Description: Logs a status message indicating the
                         *              SipProfile successfully registered.
                         */
                        public void onRegistrationDone(String localProfileUri, long expiryTime) {



                            Log.e("$$", "Sip Profile <" + localProfileUri + "> successfully registered");
                            System.out.println( " login successful");

// 我在成功注册时显示浮动操作按钮 - 不起作用

                        FloatingActionButton fab3 = (FloatingActionButton) findViewById(R.id.fab3);
                        fab3.show();
                        }

                        /**
                         * Name: onRegistrationFailed
                         * Description: Logs a status message indicating the
                         *              SipProfile failed to register.
                         */
                        public void onRegistrationFailed(String localProfileUri, int errorCode, String errorMessage) {

// 隐藏浮动操作按钮 - 有效

                            FloatingActionButton fab3 = (FloatingActionButton) findViewById(R.id.fab3);

                            fab3.hide();


                            Log.e("$$", "Sip Profile failed to register <" + localProfileUri + "> " +
                                    " Error message: " + errorMessage);
                            System.out.println( " login unsuccessful. Error message:" + errorMessage);
                        }
                    });
        } catch (ParseException e) {
            Log.e("$$", "SipProfile was not built.");
            e.printStackTrace();
        } catch (SipException e) {
            e.printStackTrace();
        }
    }
}

错误

android.util.AndroidRuntimeException: Animators may only be run on Looper threads
        at android.animation.ValueAnimator.start(ValueAnimator.java:969)
        at android.animation.ValueAnimator.start(ValueAnimator.java:1010)
        at android.animation.AnimatorSet.start(AnimatorSet.java:678)
        at android.animation.AnimatorSet.onChildAnimatorEnded(AnimatorSet.java:807)
        at android.animation.AnimatorSet.start(AnimatorSet.java:640)
        at com.google.android.material.floatingactionbutton.FloatingActionButtonImpl.hide(FloatingActionButtonImpl.java:423)
        at com.google.android.material.floatingactionbutton.FloatingActionButton.hide(FloatingActionButton.java:540)
        at com.google.android.material.floatingactionbutton.FloatingActionButton.hide(FloatingActionButton.java:536)
        at com.google.android.material.floatingactionbutton.FloatingActionButton.hide(FloatingActionButton.java:525)
        at com.serv24.eframe.MediaPresentationActivity$16.onRegistrationFailed(MediaPresentationActivity.java:1550)
        at android.net.sip.SipManager$ListenerRelay.onRegistrationFailed(SipManager.java:652)
        at android.net.sip.ISipSessionListener$Stub.onTransact(ISipSessionListener.java:180)
        at android.os.Binder.execTransact(Binder.java:573)

【问题讨论】:

    标签: android-intent sip floating-action-button


    【解决方案1】:

    请试试这个,它可能会有所帮助:

    runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    fab3.show();
                }
            });
    

    【讨论】:

    • 谢谢兄弟。它确实像一个魅力..你能解释一下这段代码吗..
    • 欢迎您 :) 这段代码有助于在主线程中运行您的代码
    猜你喜欢
    • 1970-01-01
    • 2016-11-09
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-25
    • 2020-06-11
    • 1970-01-01
    相关资源
    最近更新 更多