介绍:
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中。
点击左的效果图:
点击右的效果图: