Activity与Fragment

作者: 喜欢书的女孩 | 来源:发表于2017-01-15 14:54 被阅读45次
    2017-3-29

    Activity与Fragment之间的切换

    [1]activity内承载fragment

    [1.1]布局文件

        <FrameLayout
            android:id="@+id/content_fragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            tools:ignore="UselessLeaf">
        </FrameLayout>
    

    [1.2]activity中的实现

    private Fragment arFragment,myFragment,currentFragment;
     layout_main_ar.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    iv_page_scan.setImageResource(R.mipmap.bg_scan_h);
                    tv_page_scan.setTextColor(Color.rgb(255, 255, 255));
                    iv_page_my.setImageResource(R.mipmap.bg_me_n);
                    tv_page_my.setTextColor(Color.rgb(102, 102, 102));
                    clickScan();
                    L.i(TAG,"ar扫描");
    
                }
            });
            layout_main_my.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    iv_page_scan.setImageResource(R.mipmap.bg_scan_n);
                    tv_page_scan.setTextColor(Color.rgb(102, 102, 102));
                    iv_page_my.setImageResource(R.mipmap.bg_me_h);
                    tv_page_my.setTextColor(Color.rgb(255, 255, 255));
                    clickMe();
                    L.i(TAG,"个人中心");
                }
            });
     //[2]初始化底部按钮
        public void initTab(){
            if(arFragment==null){
                arFragment=new ARFragment();
            }
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.content_fragment,arFragment).commit();
            currentFragment=arFragment;
        }
        //[3]响应点击事件
        @SuppressLint("CommitTransaction")
        public void clickScan(){
            if(arFragment==null){
                arFragment=new ARFragment();
            }
            addOrShowFragment(getSupportFragmentManager().beginTransaction(),arFragment);
        }
        @SuppressLint("CommitTransaction")
        public void clickMe(){
            if(myFragment==null){
                myFragment=new MyFragment();
            }
            addOrShowFragment(getSupportFragmentManager().beginTransaction(),myFragment);
        }
        //[4]替换fragment
        private void addOrShowFragment(FragmentTransaction transaction, Fragment fragment) {
    
            if (currentFragment == fragment)
                return;
    
            if (!fragment.isAdded()) {
                transaction.hide(currentFragment)
                        .add(R.id.content_fragment, fragment).commit();
            } else {
                transaction.hide(currentFragment).show(fragment).commit();
            }
            currentFragment = fragment;
        }
    

    [2]fragment切换到activity

    [2.1]布局文件

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            >
    
            <ImageView
                android:id="@+id/picture_me"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:layout_marginTop="24dp"
                android:layout_centerHorizontal="true"
                android:scaleType="centerInside"
                android:src="@mipmap/im_elfin"
                android:contentDescription=""
                tools:ignore="ContentDescription" />
    
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_below="@+id/picture_me"
                android:layout_centerHorizontal="true">
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="50dp"
                    android:text="@string/myName"
                    android:textColor="#ffffff"
                    android:id="@+id/user_name" />
    
            </LinearLayout>
    
        </RelativeLayout>
    
    

    [2.2]fragment中的实现

    View view= inflater.inflate(R.layout.fragment_my, container, false);
            initView(view);
            return view;
    //[1]初始化界面
        public void initView(View v){
    
            layout_my_record=(RelativeLayout)v.findViewById(R.id.layout_my_record);
            layout_my_record.setOnClickListener(this);
        }
        //[2]点击事件
        @Override
        public void onClick(View v){
            switch (v.getId()){
                case R.id.layout_my_record:
                    Intent intent0=new Intent(getActivity(), MyRecordActivity.class);
                    MyFragment.this.startActivity(intent0);
                    L.i(LOGTAG,"我的记录");
                    break;
    
            }
        }
    
    

    小程序发布了,我不知道自己选的方向对不对?因为这个世界变化很快,我的人生20年了,一直都是带着小幸运赶在世界的末班车里,出生在20世纪末,升中考在分数在班里末尾,刚好赶上重点高中的末班车,高考在重本末尾,刚好赶上重本大学的末班车,选专业,在计算机已经疯狂的肆虐了整个世界时,我来了。在移动开发的热潮悄然褪去了些时,我来了。我一直都相信天道酬勤,并不是我真的如此幸运,而是我的努力让上帝不忍心丢下我。
    阿公说人活着就要奋斗。
    还有一句话也是阿公的教的叫一个人厉害不是真的厉害,只有一个班厉害才好。
    原来他早就知道结局。。。
    但是我是个会对自己的选择负责任的人,对于父母的放养式,我很好运的掌握着我自己的命运,不管选择什么做什么都由我自己决定。
    人最宝贵的是生命,生命属于每个人只有一次。人的一生应当这样度过。回首往事,不应虚度年华而悔恨,也不因碌碌无为而羞愧。
    不管做什么,只为不悔。

    相关文章

      网友评论

        本文标题:Activity与Fragment

        本文链接:https://www.haomeiwen.com/subject/erwybttx.html