网上的解决方法针对的都是把FragmentTransaction转化成V4包下的FragmentTransaction有问题
但是,我却遇到了相反的情况。
无法由V4包下的FragmentTransaction转化成app.FragmentTransaction有没有高人来指点一下啊??
注:**extends android.support.v4.app.Fragment**这个千万不能改
---------------------------------------------------------------------------------华丽丽的分割线下是代码片段
package com.example.myslidepage.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.*;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;import com.example.myslidepage.R;/**
 * Created by lenovo on 4/30/2019.
 */public class Fragment2 extends android.support.v4.app.Fragment implements View.OnClickListener {    public Button btn_news,btn_contact,btn_message,btn_setting;
    public MyFragment f1,f2,f3,f4;
    @Nullable    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {        View view =inflater.inflate(R.layout.tab2,container,false);
        btn_news =  view.findViewById(R.id.btn_news);
        btn_contact =  view.findViewById(R.id.btn_contact);
        btn_message =  view.findViewById(R.id.btn_message);
        btn_setting = view.findViewById(R.id.btn_setting);        btn_news.setOnClickListener(this);
        btn_contact.setOnClickListener(this);
        btn_message.setOnClickListener(this);
        btn_setting.setOnClickListener(this);        //第一次初始化首页默认显示第一个fragment
        initFragment1();
        initFragment2();
        initFragment3();
        initFragment4();
        return view;
    }
    @Override
    public void onClick(View v) {
        if(v==btn_news){
            initFragment1();
        }
        else if(v==btn_message){
            initFragment2();
        }
        else if(v==btn_contact){
            initFragment3();
        }
        else{
            initFragment4();
        }
    }    private void initFragment1(){
        android.support.v4.app.FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
        //开启事务,fragment的控制是由事务来实现的
        FragmentTransaction transaction=(FragmentTransaction)fragmentManager.beginTransaction();
        //第一种方式(add),初始化fragment并添加到事务中,如果为null就new一个
        if(f1 == null){
            f1 = new MyFragment("消息",R.drawable.message_selected);
            transaction.add(R.id.main_frame_layout, f1);
        }
        //隐藏所有fragment
        hideFragment(transaction);
        //显示需要显示的fragment
        transaction.show(f1);        transaction.commit();
    }    private void initFragment2(){
        android.support.v4.app.FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
        FragmentTransaction transaction=(FragmentTransaction)fragmentManager.beginTransaction();
        if(f2 == null){
            f2 = new MyFragment("消息",R.drawable.message_selected);
            transaction.add(R.id.main_frame_layout, f2);
        }
        //隐藏所有fragment
        hideFragment(transaction);
        //显示需要显示的fragment
        transaction.show(f2);
        transaction.commit();
    }
    private void initFragment3(){
        android.support.v4.app.FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
        FragmentTransaction transaction=(FragmentTransaction)fragmentManager.beginTransaction();        if(f3 == null){
            f3 = new MyFragment("消息",R.drawable.message_selected);
            transaction.add(R.id.main_frame_layout, f3);
        }
        //隐藏所有fragment
        hideFragment(transaction);
        //显示需要显示的fragment
        transaction.show(f3);
        transaction.commit();
    }
    private void initFragment4(){
        android.support.v4.app.FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
        FragmentTransaction transaction=(FragmentTransaction)fragmentManager.beginTransaction();
        if(f4 == null){
            f4 = new MyFragment("消息",R.drawable.message_selected);
            transaction.add(R.id.main_frame_layout, f4);
        }
        //隐藏所有fragment
        hideFragment(transaction);
        //显示需要显示的fragment
        transaction.show(f4);
        transaction.commit();
    }
    //这个方法其实很巧,这个hide方法看一眼就是唬人的。这个方法将所有的fragment都hide了,因为他的判断条件是if(f1 != null)
//因为一开始初始化的时候,f1f2f3都已经初始化一遍了,所以不可能都为空,既然都不为空,那就都隐藏。然后点击哪个方法,那个再显示。
    private void hideFragment(FragmentTransaction transaction) {
        if(f1 != null){
            transaction.hide(f1);
        }
        if(f2 != null){
            transaction.hide(f2);
        }
        if(f3 != null){
            transaction.hide(f3);
        }
        if(f4 != null){
            transaction.hide(f4);
        }
    }
}
最后,如果有高手真的能帮我解决,但是有感觉三言两语说不清楚,可以加我微信:Zy00619990518