Androi开发 ---Fragment片段布局案例

效果图:

 

1、MainActivity.java

package com.example.android_activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    //片段布局
    public void test_3(View view){
        Intent intent=new Intent(this,WeixinActivity.class);
        startActivity(intent);
    }
}

2、WeixinActivity.java

package com.example.android_activity;

import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.RadioGroup;

public class WeixinActivity extends Activity {

    //片段管理器
    private FragmentManager fm;
    //片段事务对象
    private FragmentTransaction trans;

    //获取单选按钮组
    private RadioGroup rg;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_weixin);
        rg=(RadioGroup)findViewById(R.id.radgroup);

        //1:获取片段管理器对象
        fm=getFragmentManager();
        //2:获取片段事务对象
        trans=fm.beginTransaction();
        trans.add(R.id.mainFrame,new WeixinFragment());
        trans.commit();

        //添加选择改变事件
        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                switch (i){
                    case R.id.rad_1:
                        trans=fm.beginTransaction();
                        trans.replace(R.id.mainFrame,new WeixinFragment());
                        trans.addToBackStack("back");
                        trans.commit();
                        break;
                    case R.id.rad_2:
                        trans=fm.beginTransaction();
                        trans.replace(R.id.mainFrame,new PhoneNoteFragment());
                        trans.addToBackStack("back");
                        trans.commit();
                        break;
                    case R.id.rad_3:
                        trans=fm.beginTransaction();
                        trans.replace(R.id.mainFrame,new FindFragment());
                        trans.addToBackStack("back");
                        trans.commit();
                        break;
                }
            }
        });
    }

}

3、WeixinFragment.java

package com.example.android_activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;


public class WeixinFragment extends Fragment {

    public WeixinFragment() {
    }

    private Button btn;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        //投影【将一个Layout布局xml文件生成一个View对象】
        View view=inflater.inflate(R.layout.fragment_weixin, container, false);
        btn=(Button)view.findViewById(R.id.test_btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(getActivity(),"OK",Toast.LENGTH_LONG).show();
            }
        });
        return view;
    }

}

4、PhoneNoteFragment.java

package com.example.android_activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


/**
 * A simple {@link Fragment} subclass.
 */
public class PhoneNoteFragment extends Fragment {


    public PhoneNoteFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_phone_note, container, false);
    }

}

5、FindFragment.java

package com.example.android_activity;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


/**
 * A simple {@link Fragment} subclass.
 */
public class FindFragment extends Fragment {


    public FindFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_find, container, false);
    }

}

6、activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="FrameLayout"
        android:onClick="test_1"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="FrameLayout2"
        android:onClick="test_2"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Fragment案例"
        android:onClick="test_3"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="GridLayout布局[4.0]"
        android:onClick="test_4"
        />
</LinearLayout>

7、activity_weixin.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_weixin"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!--绘制内容显示容器-->
    <FrameLayout
        android:id="@+id/mainFrame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <LinearLayout
        android:id="@+id/weixinMenu"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <RadioGroup
            android:id="@+id/radgroup"
            android:checkedButton="1"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <RadioButton
                android:id="@+id/rad_1"
                android:text="微信"
                android:drawableTop="@mipmap/ic_launcher"
                android:clickable="true"
                android:button="@null"
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_weight="1"
                android:layout_height="wrap_content" />
            <RadioButton
                android:id="@+id/rad_2"
                android:text="通讯录"
                android:drawableTop="@mipmap/ic_launcher"
                android:clickable="true"
                android:button="@null"
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_weight="1"
                android:layout_height="wrap_content" />
            <RadioButton
                android:id="@+id/rad_3"
                android:text="发现"
                android:gravity="center"
                android:drawableTop="@mipmap/ic_launcher"
                android:clickable="true"
                android:button="@null"
                android:layout_width="match_parent"
                android:layout_weight="1"
                android:layout_height="wrap_content" />
            <RadioButton
                android:id="@+id/rad_4"
                android:text="我"
                android:gravity="center"
                android:drawableTop="@mipmap/ic_launcher"
                android:clickable="true"
                android:button="@null"
                android:layout_width="match_parent"
                android:layout_weight="1"
                android:layout_height="wrap_content" />
        </RadioGroup>
    </LinearLayout>
    <LinearLayout
        android:layout_above="@id/weixinMenu"
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="@android:color/darker_gray"></LinearLayout>
</RelativeLayout>

8、fragment_weixin.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:text="我是微信" />
    <Button
        android:id="@+id/test_btn"
        android:text="点我试试"
        android:onClick="testClick"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

9、fragment_phone_note.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <!-- TODO: Update blank fragment layout -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textSize="30dp"
        android:textColor="@android:color/holo_red_dark"
        android:text="这是通讯录" />

</LinearLayout>

10、fragment_find.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.FindFragment">

    <!-- TODO: Update blank fragment layout -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textSize="30sp"
        android:textColor="@android:color/holo_green_light"
        android:text="我发现好多朋友" />

</FrameLayout>
如果您发现博客内容有什么错误,请您下方留言
原文地址:https://www.cnblogs.com/zn615/p/8145212.html