Java Android:FragmentManager在新片段膨胀时返回空白片段布局-根本不调用onCreateView()方法

Java Android:FragmentManager在新片段膨胀时返回空白片段布局-根本不调用onCreateView()方法,java,android,android-layout,android-studio,android-fragments,Java,Android,Android Layout,Android Studio,Android Fragments,嗨,我的碎片不会在框架布局中膨胀。请帮忙这是我的代码: 我的MainActivity扩展了AppCompatActivity而不是FragmentActivity,因为我需要使用actionbar public void showFragmentWomen(String title) { showFragment(FragmentWomen.newInstance(title), false); } private void showFragment(Fra

嗨,我的碎片不会在框架布局中膨胀。请帮忙这是我的代码:

我的MainActivity扩展了AppCompatActivity而不是FragmentActivity,因为我需要使用actionbar

  public void showFragmentWomen(String title) {
        showFragment(FragmentWomen.newInstance(title), false);
    }

    private void showFragment(Fragment fragment, boolean allowStateLoss) {
        FragmentManager fm = mFragmentManager;

        FragmentTransaction ft = fm.beginTransaction().replace(R.id.container, fragment);

        ft.addToBackStack(null);

        if (allowStateLoss || !BuildConfig.DEBUG) {
            ft.commitAllowingStateLoss();
        } else {
            ft.commit();
        }

        fm.executePendingTransactions();
    }
片段代码:

import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.content.ContextCompat;
import android.support.v4.content.res.ResourcesCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import com.android.msahakyan.angesbags.R;

/**
 * A simple {@link Fragment} subclass.
 * Use the {@link FragmentWomen#newInstance} factory method to
 * create an instance of this fragment.
 */
public class FragmentWomen extends Fragment {

    private static final String KEY_MOVIE_TITLE = "key_title";
    private Spinner spinner1;
    public FragmentWomen() {
        // Required empty public constructor
    }

    /**
     * Use this factory method to create a new instance of
     * this fragment.
     *
     * @return A new instance of fragment FragmentWomen.
     */
    public static FragmentWomen newInstance(String movieTitle) {
        FragmentWomen fragmentWomen = new FragmentWomen();

        return fragmentWomen;
    }

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

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        spinner1 = (Spinner) view.findViewById(R.id.frag_women_spinner);
        spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
    }
    public class CustomOnItemSelectedListener implements AdapterView.OnItemSelectedListener {

        String firstItem = String.valueOf(spinner1.getSelectedItem());

        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
            if (firstItem.equals(String.valueOf(spinner1.getSelectedItem()))) {
                // ToDo when first item is selected
            } else {
                Toast.makeText(parent.getContext(),
                        "You have selected : " + parent.getItemAtPosition(pos).toString(),
                        Toast.LENGTH_LONG).show();
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg) {

        }

    }
}
导入android.graphics.PorterDuff;
导入android.graphics.drawable.drawable;
导入android.os.Bundle;
导入android.support.annotation.Nullable;
导入android.support.v4.app.Fragment;
导入android.support.v4.content.ContextCompat;
导入android.support.v4.content.res.ResourcesCompat;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.ImageView;
导入android.widget.Spinner;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.android.msahakyan.angesbags.R;
/**
*一个简单的{@link Fragment}子类。
*使用{@link FragmentWomen#newInstance}工厂方法
*创建此片段的实例。
*/
公共类碎片扩展碎片{
私有静态最终字符串KEY\u MOVIE\u TITLE=“KEY\u TITLE”;
私人纺纱机1;
公共部门妇女(){
//必需的空公共构造函数
}
/**
*使用此工厂方法创建的新实例
*这个片段。
*
*@return一个新的碎片碎片实例。
*/
公共静态片段实例(String movieTitle){
FragmentWomen FragmentWomen=新的FragmentWomen();
返回零碎的妇女;
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
返回充气机。充气(R.layout.fragment_women,容器,假);
}
@凌驾
已创建视图上的公共void(视图,@Nullable Bundle savedInstanceState){
super.onViewCreated(视图,savedInstanceState);
spinner1=(微调器)视图.findViewById(R.id.frag\u women\u微调器);
spinner1.setOnItemSelectedListener(新CustomOnItemSelectedListener());
}
公共类CustomOnItemSelectedListener实现AdapterView.OnItemSelectedListener{
String firstItem=String.valueOf(spinner1.getSelectedItem());
已选择公共位置(AdapterView父项、视图、整数位置、长id){
if(firstItem.equals(String.valueOf(spinner1.getSelectedItem())){
//选择第一项时的ToDo
}否则{
Toast.makeText(parent.getContext(),
您已选择:“+parent.getItemAtPosition(pos.toString(),
Toast.LENGTH_LONG).show();
}
}
@凌驾
未选择公共无效(AdapterView arg){
}
}
}

您是否尝试过
ft.addToBackStack(空)提交碎片事务后?您是如何获得碎片管理器的?通过活动的“getFragmentManager()”或“getSupportFragmentManager()”?我不认为'fm.executePendingTransactions();'在那里是必需的。MFFragmentManager=mActivity.getSupportFragmentManager();其中mActivity是mainActivity的引用您是否尝试过
ft.addToBackStack(null)提交碎片事务后?您是如何获得碎片管理器的?通过活动的“getFragmentManager()”或“getSupportFragmentManager()”?我不认为'fm.executePendingTransactions();'在那里是必需的。MFFragmentManager=mActivity.getSupportFragmentManager();其中MacActivity是MainActivity的参考