Fragment切换页面

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >

    

    <FrameLayout 

        android:id="@+id/container"

        android:layout_width="fill_parent"

        android:layout_height="0dp"

        android:layout_weight="1"/>

    

    <LinearLayout 

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:orientation="horizontal">

        <Button

            android:id="@+id/a"

            android:onClick="click"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="Fragment A"/>

         <Button

             android:id="@+id/b"

            android:onClick="click"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="Fragment B"/>

    </LinearLayout>

    

</LinearLayout>
View Code

FragmentActivity.java

package com.zyf;



import android.os.Bundle;

import android.support.v4.app.Fragment;

import android.support.v4.app.FragmentManager;

import android.support.v4.app.FragmentTransaction;

import android.view.View;

import android.widget.FrameLayout;



/**

 * fragment 使用实例

 * @see http://developer.android.com/training/basics/fragments/fragment-ui.html

 * 

 * 3.0不需要继承FragmentActivity,因为3.0将比如getFragmentManager()方法已经加入到Activity中了。

 * 

 * 3.0以前版本要通过继承FragmentActivity获得类似功能。

 */

public class FragmentActivity extends android.support.v4.app.FragmentActivity {

    

    FragmentManager fragmentManager;

    FrameLayout container;

    FragmentA a;

    FragmentB b;

     

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        

        setContentView(R.layout.main);

        

        // 得到框架布局控件

        container = (FrameLayout)findViewById(R.id.container);

        

        // 返回与此活动相关的片段进行交互的FragmentManager

        fragmentManager = this.getSupportFragmentManager();

        

        // 通过begintransaction方法获取一个事物处理实例。

        FragmentTransaction mFragmentTransaction = fragmentManager.beginTransaction();

        

        a = new FragmentA();

        b = new FragmentB();

        

        /** 在这期间可以使用 add(), remove(), 以及  replace(). 最终需要改变时执行 commit()即可 */ 

        mFragmentTransaction.add(R.id.container, a);

        mFragmentTransaction.commit();

    }

    

    public void click(View view) {

        switch (view.getId()) {

            case R.id.a: // 按钮A

                show(a);

                break;

            case R.id.b: // 按钮B

                show(b);

                break;

            default:

                break;

        }

    }

    private void show(Fragment frament) {

        FragmentTransaction mFragmentTransaction = getSupportFragmentManager().beginTransaction();

        mFragmentTransaction.replace(R.id.container, frament);

        mFragmentTransaction.addToBackStack(null);

       // mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);//设置动画效果

        mFragmentTransaction.commit();

    }

}
View Code

FragmentA.java

package com.zyf;



import android.content.Intent;

import android.os.Bundle;

import android.support.v4.app.Fragment;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.Button;



public class FragmentA extends Fragment {



    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

    }



    @Override

    public View onCreateView(LayoutInflater inflater, ViewGroup container,

            Bundle savedInstanceState) {

            

        View view = inflater.inflate(R.layout.fa, container, false);

        

        // "AAAAAAAAAAAAA"按钮

        Button btn = (Button)view.findViewById(R.id.next);

        btn.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                Intent intent = new Intent(Intent.ACTION_VIEW);

                startActivity(intent);

            }

        });

        return view;

    }

    

//    public void next(View view) {

//        Intent intent = new Intent(Intent.ACTION_VIEW);

//        startActivity(intent);

//    }

}
View Code

FragmentB.java

package com.zyf;



import android.os.Bundle;

import android.support.v4.app.Fragment;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;



public class FragmentB extends Fragment {



    @Override

    public void onCreate(Bundle savedInstanceState) {

        // TODO Auto-generated method stub

        super.onCreate(savedInstanceState);

    }

    

    @Override

    public View onCreateView(LayoutInflater inflater, ViewGroup container,

            Bundle savedInstanceState) {

            

        return inflater.inflate(R.layout.fb, container, false);

    }

    

//    public void next(View view) {

//        Intent intent = new Intent(Intent.ACTION_VIEW);

//        startActivity(intent);

//    }

}
View Code

 

你可能感兴趣的:(Fragment)