仅用于个人学习使用, 对大多数知识点进行了总结, 欢迎大家!
同 Activity 一样, Fragment 要有自己的布局文件 (无需在 AndroidManifest.xml 中注册)
Fragment 接近 view, 是帮助开发者封装view组合的工具类,你也可以把它理解为带有生命周期的Android提供的可自主定义布局的view容器. (子 Activity)
Fragment 关心更多的是view的拆分和组合 (适配手机和平板横竖屏)
创建
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class BlankFragment extends Fragment {
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
public BlankFragment() {
// Required empty public constructor
}
public static BlankFragment newInstance(String param1, String param2) {
BlankFragment fragment = new BlankFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
// 在 onCreateView() 中加载布局
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_blank, container, false);
}
}
静态创建
1. 编写 fragment 的类: BlankFragment 2. 在 activity 的布局文件中声明 <FragmentContainerView/> (代替 <fragment/> ) <FragmentContainerView android:id="@+id/blankFragment" android:name="com.example.app.BlankFragment" <!--指定 fragment 的路径 --> /> 3. 创建 fragment_blank.xml
FragmentContainerView 位于androidx.fragment.app 包下,是专门为 Fragment 设计的自定义布局。它扩展了 FrameLayout,所以它可以可靠地处理Fragment事务,并且它还有其他功能来协调 F