emil-ep / TournamentBrackets

Android project written in Java to display Tournaments brackets with animation
MIT License
53 stars 6 forks source link

Can't start in fragmentet #10

Closed MiguelDAD closed 11 months ago

MiguelDAD commented 1 year ago

Hello,

I'm trying to use your library following the README provided on your GitHub profile, but unfortunately, it's not working for me. I have also tried using the example you provided, but I still can't get it to work.

Additionally, I believe the steps to implement the library may be deprecated because I haven't been able to get it to work by following the first two steps. Could you please provide some assistance on how I can get the library to work properly?

Thank you for your time and help.

Return this error:

FATAL EXCEPTION: main
                                                                                                    Process: com.example.pi_movil, PID: 6094
                                                                                                    java.lang.IllegalStateException: Fragment zzd{cd94dc4} (80a63a66-e7a0-40a9-9da6-04ac29f928bd tag=SupportLifecycleFragmentImpl) does not have a view
                                                                                                        at androidx.fragment.app.Fragment$4.onFindViewById(Fragment.java:2901)
                                                                                                        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:504)
                                                                                                        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:942)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:201)
                                                                                                        at android.os.Looper.loop(Looper.java:288)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:7872)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

XML Code:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".DatosTorneoRondasFragment">

    <com.ventura.bracketslib.BracketsView
        android:id="@+id/bracket"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:bracketBackgroundColor="#1c222e"
        app:bracketColor="#262e40"
        app:bracketTextColor="#fff" />

</androidx.constraintlayout.widget.ConstraintLayout>

Java code:

package com.example.pi_movil;

import android.os.Bundle;

import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.ventura.bracketslib.BracketsView;
import com.ventura.bracketslib.model.ColomnData;
import com.ventura.bracketslib.model.CompetitorData;
import com.ventura.bracketslib.model.MatchData;

import java.util.Arrays;

public class DatosTorneoRondasFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_datos_torneo_rondas, container, false);

        BracketsView bracketsView = view.findViewById(R.id.bracket);

        CompetitorData brazilSemiFinal = new CompetitorData("Brazil", "3");
        CompetitorData englandSemiFinal = new CompetitorData("England", "1");
        CompetitorData argentinaSemiFinal = new CompetitorData("Argentina", "3");
        CompetitorData russiaSemiFinal = new CompetitorData("Russia", "2");
        CompetitorData brazilFinal = new CompetitorData("Brazil", "4");
        CompetitorData argentinaFinal = new CompetitorData("Argentina", "2");

        MatchData match1SemiFinal = new MatchData(brazilSemiFinal, englandSemiFinal);
        MatchData match2SemiFinal = new MatchData(argentinaSemiFinal, russiaSemiFinal);
        MatchData match3Final = new MatchData(brazilFinal, argentinaFinal);

        ColomnData semiFinalColomn = new ColomnData(Arrays.asList(match1SemiFinal, match2SemiFinal));
        ColomnData finalColomn = new ColomnData(Arrays.asList(match3Final));

        bracketsView.setBracketsData(Arrays.asList(semiFinalColomn, finalColomn));

        return view;
    }
}

Caller:

public class InformacionTorneoFragment extends Fragment {

    TabLayout tabLayout;
    ViewPager viewPager;

    Torneo actual;

    public InformacionTorneoFragment(Torneo t) {
        this.actual = t;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_informacion_torneo, container, false);

        addFragment(view);

        return view;
    }

    private void addFragment(View view){

        tabLayout = view.findViewById(R.id.tabLayout);
        viewPager = view.findViewById(R.id.viewPager);
        ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());
        //AÑADIR FRAGMENTOS
        adapter.addFragment(new DatosTorneoFragment(actual),"DATOS");
        adapter.addFragment(new DatosTorneoEquiposFragment(actual),"EQUIPOS");
        adapter.addFragment(new DatosTorneoRondasFragment(),"RONDAS");
        viewPager.setAdapter(adapter);
        tabLayout.setupWithViewPager(viewPager);

    }
}