Android fragment简单用法
在静态创建fragment中
注意fragment是一个类似于界面的一个元件,因此,还需要为fragment建立一个activity用于存放我们建立的fragment
也就是说需要建立一个空的activity和一个空的fragment项目,activity项目用于承载fragment项目
在fragment标签内
可以通过name属性对我们的fragment项目进行绑定
<fragment android:id="@+id/fragment" android:layout_width="match_parent" android:layout_height="wrap_content" tools:layout="@layout/fragment_static" android:name="com.example.belowmeue.fragment.StaticFragment"/>
以下代码是fragment基本用法
public class StaticFragment extends Fragment { private TextView textview; private RadioButton radio_like,radio_dislike; // TODO: Rename parameter arguments, choose names that match private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM2 = "param2"; private String mParam1; private String mParam2; public StaticFragment() { } public static StaticFragment newInstance(String param1, String param2) { StaticFragment fragment = new StaticFragment(); 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); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } } //这是创建视图时调用的方法 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_static, container, false); } //这是视图创建完成后调用的方法,其中view承载的就是fragment所绑定的页面 //也就是说可以在这个方法内对fragment页面内的元件进行操作 @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); textview = view.findViewById(R.id.textview); radio_like = view.findViewById(R.id.ridio_like); radio_dislike = view.findViewById(R.id.ridio_dislike); radio_like.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { if(b){ textview.setText("APP喜欢"); } } }); radio_dislike.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { if (b) { textview.setText("APP不喜欢"); } } }); } //这是activity创建完成所调用的方法,也可以在这里面写元件操作的代码 @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } }
动态创建fragment
动态创建跟静态创建类似
只是将fragment装在activity的方式不同
在activity中创建FragmentContainerView标签
之后在activity代码中添加FragmentManager和FragmentTransaction
具体方法如下
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dfragment); //防止fragmentManager被重复创建 if(savedInstanceState == null){ FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.add(R.id.fcv, DongtaiFragment.class,null) .setReorderingAllowed(true) //允许自动排序 .addToBackStack(null) //创建之后添加到栈里 .commit() ; } }