Fragment类实现
Posted jiegeluo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fragment类实现相关的知识,希望对你有一定的参考价值。
Fragment是界面和逻辑的结合,对于实现继承Fragment的类,一般可以分一下几块:
1、方法块:
1)重写方法,实现一些父类、接口的方法,重要的有
Fragment的生命周期的回调函数。Fragment需要和Activity关联才能使用,所以可能需要获得对应的Activity对象;Fragment实现界面逻辑时要获取自己的控件;这些都要在特定的回调函数中才可以进行。
2)私有功能方法实现,实际逻辑实现,以函数为单位,清晰控制各个功能的步骤。
添加几个初始化方法,初始化配置变量、事件监听器、数据变量等。
3)共有方法,对外提供功能的
2、接口:Fragment有时候会需要使用与之关联的activity的功能,可以定义一个接口,由Activity实现,在OnAttach()方法中获取到,然后使用
3、变量:
事件监听器
配置变量、数据变量
////这个函数用了依据xml文件初始化界面信息
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_demo, container, false); }
////这个函数是在Activity创建之后调用的,想要获取Fragment中的控件,需要在这个函数中
////使用this.getView().findViewById(R.id)函数来依据id获取对应控件
@Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } @Override public void onStart() { super.onStart(); } @Override public void onResume() { super.onResume(); } @Override public void onPause() { super.onPause(); } @Override public void onStop() { super.onStop(); } @Override public void onDestroyView() { super.onDestroyView(); } @Override public void onDestroy() { super.onDestroy(); } ////可以在这个函数中改变Menu内容 @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); }
@Override public void onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { return super.onOptionsItemSelected(item); } @Override public void onOptionsMenuClosed(Menu menu) { super.onOptionsMenuClosed(menu); }
////这里可以获取对应Activity对象, @Override public void onAttach(Context context) { super.onAttach(context); if (context instanceof OnFragmentInteractionListener) { mListener = (OnFragmentInteractionListener) context; } else { throw new RuntimeException(context.toString() + " must implement OnFragmentInteractionListener"); } } @Override public void onDetach() { super.onDetach(); mListener = null; }
以上是关于Fragment类实现的主要内容,如果未能解决你的问题,请参考以下文章
Cg入门20:Fragment shader - 片段级模型动态变色(实现汽车动态换漆)
如何在 ViewPager 中从 Activity 移动到 Fragment?未找到片段 ID 的视图
Cg入门16:Fragment shader - 片段级光照