初体验之Fragment

2017-09-08  本文已影响0人  淼_f21a

Fragment

注意事项

使用步骤

  1. 创建一个Fragment,代码如下:
public class SurveyFragment extends Fragment implements View.OnClickListener{
    private View view;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        //这里需要一个fragment_survey.xml,即此Fragment 的布局文件;
        view = inflater.inflate(R.layout.fragment_survey,container,false);        
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState){
      //这里相当于Activity的onCreate();添加布局可以在这里做和Activity没什区别
      //这里是嵌套一个Fragment
        SurveyAlarmDataFragment surveyAlarmDataFragment = new SurveyAlarmDataFragment();
        replaceFragment(surveyAlarmDataFragment);
        super.onActivityCreated(savedInstanceState);
    }
    private void replaceFragment(Fragment fragment){
//这里是显示Fragment的具体步骤
        FragmentManager fragmentManager = getChildFragmentManager();
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(R.id.survey_data_layout,fragment);
        transaction.addToBackStack(null);
        transaction.commit();
    }

    @Override
    public void onClick(View view) {//可以写按钮事件
        switch (view.getId()){
            default:
                break;
        }
    }
}

2.在活动(Activity)中调用,代码如下:

AlarmFragment alarmFragment = new AlarmFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.survey_data_layout,fragment);
transaction.addToBackStack(null);//此条可选,添加可以返回;
transaction.commit();

3.Activity布局文件中最好使用Framelayout布局来加载Fragment,代码如下

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@null">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/survey_data_layout"></FrameLayout>
</LinearLayout>

问题

特别鸣谢

灵魂导师- KingJA

上一篇 下一篇

猜你喜欢

热点阅读