Здесь ошибка? Фрагмент застрял - PullRequest
0 голосов
/ 09 июля 2020

У меня есть действие с заполнителем для загрузки фрагментов.

И у меня есть две кнопки для каждого фрагмента: следующий и предыдущий, чтобы переключиться на следующий и предыдущий фрагменты.

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

<!-- TODO: Update blank fragment layout -->

<TextView
    android:id="@+id/textoHistoria"
    android:layout_width="330dp"
    android:layout_height="245dp"
    android:layout_marginTop="48dp"
    android:text="111111111"
    android:textColor="@android:color/holo_blue_dark"
    app:layout_constraintHorizontal_bias="0.382"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<Button
    android:id="@+id/previous"
    android:layout_width="101dp"
    android:layout_height="82dp"
    android:layout_marginTop="296dp"
    android:background="@android:color/holo_blue_light"
    android:text="Atrás"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toLeftOf="@id/adelante"
    app:layout_constraintTop_toBottomOf="@id/textoHistoria" />

<Button
    android:id="@+id/next"
    android:layout_width="101dp"
    android:layout_height="82dp"
    android:layout_marginTop="296dp"
    android:background="@android:color/holo_blue_light"
    android:text="Adelante"
    app:layout_constraintLeft_toRightOf="@id/atras"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@id/textoHistoria" />

</androidx.constraintlayout.widget.ConstraintLayout>

Но когда я go перехожу к следующему фрагменту, первый фрагмент продолжает отображаться над содержимым второго фрагмента, как ошибка.

Это код фрагментов

    package com.example.aprendelastablasdemultiplicar;

    import android.os.Bundle;

    import androidx.fragment.app.Fragment;
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.fragment.app.FragmentTransaction;

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

/**
 * A simple {@link Fragment} subclass.
 * Use the {@link historiamultiplicaciones1#newInstance} factory      method to
 * create an instance of this fragment.
 */
public class historiamultiplicaciones1 extends Fragment {
    private Button next;
private Button previous;

// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";

// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;

public historiamultiplicaciones1() {
    // Required empty public constructor
}

/**
 * Use this factory method to create a new instance of
 * this fragment using the provided parameters.
 *
 * @param param1 Parameter 1.
 * @param param2 Parameter 2.
 * @return A new instance of fragment historiamultiplicaciones1.
 */
// TODO: Rename and change types and number of parameters
public static historiamultiplicaciones1 newInstance(String param1,    String param2) {
    historiamultiplicaciones1 fragment = new historiamultiplicaciones1();
    Bundle args = new Bundle();
    args.putString(ARG_PARAM1, param1);
    args.putString(ARG_PARAM2, param2);
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        mParam1 = getArguments().getString(ARG_PARAM1);
        mParam2 = getArguments().getString(ARG_PARAM2);
    }


}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
        View rootView =         inflater.inflate(R.layout.fragment_historiamultiplicaciones1, container,    false);

    Button next = (Button)rootView.findViewById(R.id.next);
    Button previous = (Button)rootView.findViewById(R.id.previous);

    next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Fragment historia2 = new historiamultiplicaciones2();
            FragmentTransaction transaction = getFragmentManager().beginTransaction();
                transaction.replace(R.id.placeholderfragments,    historia2);
            transaction.addToBackStack(null);
            transaction.commit();
        }
    });

    previous.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

    return rootView;
    }
} 

Вопрос is: Как мне перемещаться между фрагментами, не показывая всегда первый фрагмент над другими. (Думаю, это ошибка).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...