Fraagment基础

介绍:

Fragment,英文碎片的意思,早期应用在平板设计中。

特点:

  • Android 3.0 后出现, 是Activity 的一部分
  • Fragment 作用: 提高代码的重用性, 提高用户的体验, 可以对Activity 进行模块化的管理
  • Fragment 有自己的生命周期和接收处理用户的事件
  • Fragment 可以 添加, 移除, 替换, 显示, 隐藏

java代码:

主类:

package com.example.day12;

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Activity_day12 extends AppCompatActivity {
    Button left;
    Button right;
    LeftFragment leftFragment;
    RightFragment rightFragment;
    FragmentManager manager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_day12);
        //获取不同位置的碎片类
        leftFragment = new LeftFragment();
        rightFragment = new RightFragment();
        //获取manager
        manager = getSupportFragmentManager();
        //拿到Activity的布局ID
        right = findViewById(R.id.btnright);
        left = findViewById(R.id.btnleft);
        //开启事件
        FragmentTransaction beginTransaction = manager.beginTransaction();
        beginTransaction.add(R.id.fram,new LeftFragment());//将该放在哪里的碎片类放到哪里
        beginTransaction.commit();//事件提交
        //按钮监听 实现切换效果
        right.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FragmentTransaction transaction = manager.beginTransaction();
                transaction.add(R.id.fram,new RightFragment());
                transaction.commit();
            }
        });
        left.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FragmentTransaction transaction = manager.beginTransaction();
                transaction.add(R.id.fram,new LeftFragment());
                transaction.commit();
            }
        });
    }
}

第一个碎片类:

package com.example.day12;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class LeftFragment extends Fragment {
    /**
     * 第一个碎片类
     * @param inflater
     * @param container
     * @param savedInstanceState
     * @return
     */
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.layout_left, container, false);
        return view;
    }
}

第二个碎片类:

package com.example.day12;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class RightFragment extends Fragment {
    /**
     * 第二个碎片类
     * @param inflater
     * @param container
     * @param savedInstanceState
     * @return
     */
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.layou_right, container,false);
        return view;
    }
}

需要有自定义的布局文件,将自定义的布局文件放入Activity中。

点击左的效果图:
在这里插入图片描述

点击右的效果图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44946212/article/details/90416035