emil-ep / TournamentBracketLib

A library to generate tournament brackets with smooth transition and animations
MIT License
26 stars 2 forks source link

Cannot use bracketView in fragment #10

Open kostapostolakis opened 3 years ago

kostapostolakis commented 3 years ago

Hello, I tried to use the bracketView in fragment but the app crashes.

emil-ep commented 3 years ago

@kostapostolakis Please post the stacktrace. Thanks

kostapostolakis commented 3 years ago

I use TabLayout with ViewPager2 and I have added the bracketsView inside one of the fragments of the adapter. I get the error below.

2021-08-23 12:54:02.018 26173-26173/com.appsoccerhub.soccerhubbusiness E/AndroidRuntime: FATAL EXCEPTION: main Process: com.appsoccerhub.soccerhubbusiness, PID: 26173 android.view.InflateException: Binary XML file line #188 in com.appsoccerhub.soccerhubbusiness:layout/fragment_tournament_standings: Binary XML file line #188 in com.appsoccerhub.soccerhubbusiness:layout/fragment_tournament_standings: Error inflating class com.ventura.bracketslib.BracketsView Caused by: android.view.InflateException: Binary XML file line #188 in com.appsoccerhub.soccerhubbusiness:layout/fragment_tournament_standings: Error inflating class com.ventura.bracketslib.BracketsView Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at android.view.LayoutInflater.createView(LayoutInflater.java:852) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959) at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082) at android.view.LayoutInflater.inflate(LayoutInflater.java:680) at android.view.LayoutInflater.inflate(LayoutInflater.java:532) at com.appsoccerhub.soccerhubbusiness.Fragments.Fragment_Tournament_Standings.onCreateView(Fragment_Tournament_Standings.java:61) at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100) at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1971) at androidx.fragment.app.BackStackRecord.commitNow(BackStackRecord.java:305) at androidx.viewpager2.adapter.FragmentStateAdapter.placeFragmentInViewHolder(FragmentStateAdapter.java:341) at androidx.viewpager2.adapter.FragmentStateAdapter.onViewAttachedToWindow(FragmentStateAdapter.java:276) at androidx.viewpager2.adapter.FragmentStateAdapter.onViewAttachedToWindow(FragmentStateAdapter.java:67) at androidx.recyclerview.widget.RecyclerView.dispatchChildAttached(RecyclerView.java:7556) at androidx.recyclerview.widget.RecyclerView$5.addView(RecyclerView.java:860) at androidx.recyclerview.widget.ChildHelper.addView(ChildHelper.java:107) at androidx.recyclerview.widget.RecyclerView$LayoutManager.addViewInt(RecyclerView.java:8601) at androidx.recyclerview.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:8559) at androidx.recyclerview.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:8547) at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1641) at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587) at androidx.recyclerview.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1391) at androidx.recyclerview.widget.LinearLayoutManager.scrollHorizontallyBy(LinearLayoutManager.java:1116) at androidx.recyclerview.widget.RecyclerView.scrollStep(RecyclerView.java:1838) at androidx.recyclerview.widget.RecyclerView$SmoothScroller.onAnimation(RecyclerView.java:11920) at androidx.recyclerview.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:5390) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1056) at android.view.Choreographer.doCallbacks(Choreographer.java:878) at android.view.Choreographer.doFrame(Choreographer.java:807) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1041) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7698) 2021-08-23 12:54:02.018 26173-26173/com.appsoccerhub.soccerhubbusiness E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952) Caused by: java.lang.IllegalStateException: FragmentManager is already executing transactions at androidx.fragment.app.FragmentManager.ensureExecReady(FragmentManager.java:1931) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1996) at androidx.fragment.app.FragmentManager.executePendingTransactions(FragmentManager.java:600) at com.ventura.bracketslib.BracketsView.initialiseBracketsFragment(BracketsView.java:92) at com.ventura.bracketslib.BracketsView.init(BracketsView.java:83) at com.ventura.bracketslib.BracketsView.<init>(BracketsView.java:46) ... 44 more

Thank you in advance.

emil-ep commented 3 years ago

@kostapostolakis BracketsView is currently not compatible with FragmentActivities, will update and release a new version soon

emil-ep commented 3 years ago

changes has been made to support fragments #17 . You can find the new release 1.0.3

kostapostolakis commented 3 years ago

My app crashes again with 1.0.3. Can you check it with viewPager2 and TabLayout? I send you the stacktrace. Thanks.

java.lang.IllegalArgumentException: No view found for id 0x7f080113 (com.appsoccerhub.soccerhubbusiness:id/container) for fragment BracketsFragment{505c673} (15073d10-0a35-439f-9a66-193aa182bb48 id=0x7f080113 tag=brackets_home_fragment)
        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:513)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
        at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
        at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
        at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
        at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7698)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)
emil-ep commented 3 years ago

Please post the entire stacktrace. Use some online tools like pastebin so that i can have look at the entire logs. I tried with viewpager2 and tablayout and is working for me

kostapostolakis commented 3 years ago

This is all I get.

2021-08-28 13:08:31.757 10517-10517/com.appsoccerhub.soccerhubbusiness E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.appsoccerhub.soccerhubbusiness, PID: 10517
    java.lang.IllegalArgumentException: No view found for id 0x7f080113 (com.appsoccerhub.soccerhubbusiness:id/container) for fragment BracketsFragment{a58d009} (3fb9a575-1a56-41c7-b855-c258280ce1b3 id=0x7f080113 tag=brackets_home_fragment)
        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:513)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
        at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
        at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
        at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
        at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7698)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)