首页 > 其他 > 详细

fragment的基本使用

时间:2015-03-31 20:17:03      阅读:276      评论:0      收藏:0      [点我收藏+]

fragment 基本使用方法
    1、继承Fragment类或者子类并重写
            public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState)
       方法。把xml文件包裹成View对象,并对vie进行操作,与activity操作View相同。
    2、把fragment添加到activity中:
      1)、在xml中添加,也即静态添加:
              <fragment
            android:layout_below="@id/tv"
            android:id="@+id/left_fragment"
            android:name="com.example.test.LeftFragment"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
       2)、在代码中添加,也即动态添加:
            FragmentManager LeftFragment fragment=new LeftFragment();
            fragmentManager=getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.add(R.id.ll, fragment);
            fragmentTransaction.commit();
            注:需要commit().
    3、基本操作,增、删、改、查。
         重要类:
           FragmentManager: Fragment管理
           FragmentTransaction:Fragment事务
           Fragment:具体Fragment
         增:add方法
         删:remove方法
         改:replace方法
         查:findFragmentByTag 或者 findFragmentById
    4、回退栈
         使用FragmentTransaction中的addToBackStack方法
    5、与activity的通讯
           在Fragment内定义一个接口,其作用是让activity使用。
        1)、
            public class FragmentB_1 extends Fragment implements OnClickListener {
                private FragmentBIF fragmentBIF;
                public interface FragmentBIF{
                    public void setB();
                }
                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container,
                        Bundle savedInstanceState) {
                    View view = inflater.inflate(R.layout.b, null);
                    Button button=(Button) view.findViewById(R.id.but_b);
                    button.setOnClickListener(this);
                    return view;
                }
                public void setFragmentBIF(FragmentBIF fragmentBIF) {
                    this.fragmentBIF = fragmentBIF;
                }
                //button的点击事件作用到接口的setB方法
                @Override
                public void onClick(View v) {
                    if(fragmentBIF!=null){
                        fragmentBIF.setB();
                    }
                }
            }
         2)、
            public class FragmentA_1 extends Fragment implements OnClickListener {
            
                private FragmentIF fragmentIF;
                public interface FragmentIF{
                    public void setA();
                }
                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container,
                        Bundle savedInstanceState) {
                     View view = inflater.inflate(R.layout.a, null);
                     Button button = (Button) view.findViewById(R.id.but_a);
                     button.setOnClickListener(this);
                     return view;
                }
                
                //button的点击事件作用到接口的setA方法上
                @Override
                public void onClick(View v) {
                    if(getActivity() instanceof FragmentIF){
                        ((FragmentIF)getActivity()).setA();
                    }
                }
            }
           
           
       
      

fragment的基本使用

原文:http://cbg23.blog.51cto.com/7201812/1627006

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!