Because I can not show a Fragment from another Fragment

0

I have created a horizontal menu, and one of the Fragments that make up the menu shows me a button, which when pressed would have to show another Fragment, but it is not displayed, it does not show any error, it just does not get to be displayed.

This is the Fragment where I have the button to show the other Fragment

MainActivity.java

public class MainActivity extends AppCompatActivity {

private ViewPager viewPager;
HorizontalScrollMenuView horizontal_menu;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    horizontal_menu = (HorizontalScrollMenuView) findViewById(R.id.horizontal_menu);
    viewPager = (ViewPager) findViewById(R.id.pager);

    horizontal_menu.addItem("Menu 1", R.drawable.home_icon, true);
    horizontal_menu.addItem("Boton", R.drawable.round_account);
    horizontal_menu.addItem("Esquema", R.drawable.notifications);

    horizontal_menu.showItems();//hacemos visible los items del menu

    PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager());
    viewPager.setAdapter(pagerAdapter);
    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }

        @Override
        public void onPageSelected(int position) {
            //cambiamos el elemento seleccionado del menu a la posicion actual del viewpager
            horizontal_menu.setItemSelected(position);
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

    //implementamos la interface para caputar los clic en el menu
    horizontal_menu.setOnHSMenuClickListener(new HorizontalScrollMenuView.OnHSMenuClickListener() {
        @Override
        public void onHSMClick(MenuItem menuItem, int position) {
            viewPager.setCurrentItem(position);
        }
    });
}


private class PagerAdapter extends FragmentPagerAdapter {

    //public PagerAdapter(FragmentManager fm) {
    PagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {

        switch (position) {
            case 0:
                return new Menu1();
            case 1:
                return new Boton();
            case 2:
                return new Esquema();
            default:
                return new Menu1();
        }
    }

    @Override
    public int getCount() {
        return 3;
    }
}
}

Fragment Boton.java

public class Boton extends Fragment {

private Button verEsquema;

public Boton() {
}

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

    View rootView  = inflater.inflate( R.layout.boton, container, false );

    verEsquema = (Button) rootView.findViewById(R.id.btn_boton1);

    verEsquema.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Fragment nuevoFragmento = new Esquema();
            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            //transaction.replace(R.id.frame_container, nuevoFragmento);
             transaction.replace(((ViewGroup)getView().getParent()).getId(), nuevoFragmento);
            transaction.addToBackStack(null);
            transaction.commit();
        }
    });

    return rootView;
}
}

boton.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<Button
    android:id="@+id/btn_boton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="68dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginBottom="8dp"
    android:text="Boton 1"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.0" />
 </android.support.constraint.ConstraintLayout>

Fragment Schema.java

public class Esquema extends Fragment {

WebView mWebView;

public Esquema() {
}

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

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

    mWebView = (WebView) view.findViewById( R.id.webView_esquema);
    mWebView.getSettings().setJavaScriptEnabled( true );
    mWebView.getSettings().setAppCacheEnabled( true );
    mWebView.getSettings().setBuiltInZoomControls( true );
    mWebView.getSettings().setDisplayZoomControls( false );
    mWebView.getSettings().setSupportZoom( true );
    mWebView.getSettings().setDefaultZoom( WebSettings.ZoomDensity.FAR );
    mWebView.getSettings().setLoadWithOverviewMode( true );
    mWebView.getSettings().setUseWideViewPort( true );
    mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    mWebView.setScrollbarFadingEnabled(false);

    mWebView.loadUrl("file:///android_asset/esquema.html");

    return view;
}
}

outline.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent">

<WebView
    android:id="@+id/webView_esquema"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</WebView>

</FrameLayout>

activity_main.xml          

 <com.darwindeveloper.horizontalscrollmenulibrary.custom_views.HorizontalScrollMenuView
    android:id="@+id/horizontal_menu"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:backgroundMenuColor="#0099cc"
    app:backgroundNotifications="@color/colorAccent"
    app:icon_height="50dp"
    app:icon_width="50dp"
    app:item_backgroundColor="@color/colorPrimary"
    app:item_colorSelected="#ffffff"
    app:item_textColor="#ffffff" />

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>

<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
</FrameLayout>

</LinearLayout>    

Could you tell me what I'm doing wrong and why is not it showing?

Thank you.

    
asked by SoCu 18.11.2018 в 20:00
source

0 answers