轻松将一个Fragment转变成Activity

来源:互联网 发布:飓云网络wifi登录界面 编辑:程序博客网 时间:2024/05/22 05:29

创建一个activity

public class FindFragmActivity extends BaseMyActivity {    private FindFragment findFragment;    @Override    protected int getActivityLayoutID() {        return R.layout.activity_find_fragm;    }    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        FragmentManager manager = getFragmentManager();        FragmentTransaction transaction = manager.beginTransaction();        if (savedInstanceState != null) {            findFragment = (FindFragment) manager.findFragmentByTag("find");        }        if (findFragment == null) {            findFragment = new FindFragment();            //传递参数给fragment            Bundle bundle = new Bundle();            //是否需要显示顶部的topbar(就是返回按钮的那个顶部栏)            bundle.putBoolean("showTopBar", true);            findFragment.setArguments(bundle);        }        transaction.add(R.id.flContainer, findFragment, "find");        transaction.commit();    }    @Override    protected void initView() {    }    @Override    protected void initData() {    }}

activity的布局文件:

<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <FrameLayout        android:id="@+id/flContainer"        android:layout_width="match_parent"        android:layout_height="match_parent">    </FrameLayout></LinearLayout>

在Fragment的onActivityCreated()方法中做处理

public class FindFragment extends BaseFragment {    @Override    protected void afterCreate(Bundle savedInstanceState) {        boolean showTopBar;        Bundle bundle = getArguments();        if (bundle != null) {            showTopBar = bundle.getBoolean("showTopBar", true);        } else {            showTopBar = true;        }        if (showTopBar) {            rlTopLayout.setVisibility(View.VISIBLE);            ViewUtil.setTitle(tvTopTitle, getResources().getString(R.string.find));            ibBack.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    getActivity().finish();                }            });        } else {            rlTopLayout.setVisibility(View.GONE);            //改变系统状态栏颜色            if (ViewUtil.isNeedTran()) {                ViewUtil.addStartBarView(getActivity(), mRootView);            }        }    }}

BaseFragment的相关代码

public abstract class BaseFragment extends Fragment {    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        afterCreate(savedInstanceState);    }}
0 0
原创粉丝点击