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