在Android中销毁当前Fragment界面。

来源:互联网 发布:js同步请求 编辑:程序博客网 时间:2024/06/03 12:45

我们知道,因为Android中Fragment是依附于实际的FragmentActivity的,所以Fragment无法像Activity那样调用finish()方法销毁自己。

但是,很多场合下,我们又需要把自己关闭掉。
同时,我们知道触摸返回键是可以关掉当前Fragment。

那就好办了:





@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {  View view=  inflater.inflate(R.layout.scenes_main,null);    mToolbar = (Toolbar)view.findViewById(R.id.toolbar);    mToolbar.setTitle("");    ( (AppCompatActivity)getActivity()).setSupportActionBar(mToolbar);    mToolbar.setBackgroundResource(R.color.navigation);    TextView tv = (TextView) mToolbar.findViewById(R.id.title_sub);    tv.setText(R.string.sleep_scene);    int white = getResources().getColor(R.color.white_80);    tv.setTextColor(white);    //返回按键    Drawable upArrow = getContext().getDrawable(android.support.v7.appcompat.R.drawable.abc_ic_ab_back_material);    upArrow.setColorFilter(white, PorterDuff.Mode.SRC_ATOP);    ( (AppCompatActivity)getActivity()).getSupportActionBar().setHomeAsUpIndicator(upArrow);    //关键下面两句话,设置了回退按钮,及点击事件的效果    ( (AppCompatActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);    mToolbar.setNavigationOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            getActivity().onBackPressed();//销毁自己        }。    });    init(view);   return  view;}

3 2