wenwenwen888 / SearchDialog

仿bilibili搜索框效果(三句代码实现)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

请问这是什么问题?

marscl opened this issue · comments

commented

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java)
at android.support.v4.app.DialogFragment.dismissInternal(DialogFragment.java)
at android.support.v4.app.DialogFragment.dismiss(DialogFragment.java)
at com.wyt.searchbox.SearchFragment.onHideAnimationEnd(SearchFragment.java)
at com.wyt.searchbox.custom.CircularRevealAnim$1.onAnimationEnd(CircularRevealAnim.java)
at android.view.RenderNodeAnimator.onFinished(RenderNodeAnimator.java:376)
at android.animation.RevealAnimator.onFinished(RevealAnimator.java:43)
at android.view.RenderNodeAnimator.callOnFinished(RenderNodeAnimator.java:483)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:153)
at android.os.Looper.loop(Looper.java:178)
at android.app.ActivityThread.main(ActivityThread.java:5911)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:879)

@marscl 怎么触发的可以说一下吗

commented

java.lang.IllegalStateException: Fragment already added: SearchFragment{2a84ce3 #3 SearchFragment}
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java)
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5877)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)

还有这个。我也不知道怎么触发的。

@marscl 程序有崩溃吗 ? show的时候出错还是怎样 ?

commented

快速不断打开,退出搜索会触发

fragment 重复添加了,加上这段即可
if (!searchFragment.isAdded()) {
searchFragment.show(getSupportFragmentManager(), tag);
}
建议作者加一个方法判断下,我在作者的searchFragment中加了个方法如下:
/**
* 显示
* @param fragmentManager
* @param tag
*/
public void showFragment(FragmentManager fragmentManager,String tag){
if (!this.isAdded()) {
this.show(fragmentManager, tag);
}
}