觉得自己还是十分的浮躁,总想快点学习完毕,学到一些很漂亮的UI控件,本来最近应该弄文件下载的,但是又去弄fragment了
不过根据我自己的理解的话,我觉得fragment就像一个个的view可以通过FragmentMannager对主界面的fragment进行管理
1.要创建一个碎片,应该先定义其布局文件,现在我定义了一个left_fragment.xml布局文件
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" > 6 7 <Button 8 android:id="@+id/button" 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:layout_gravity="center_horizontal" 12 android:text="Button"/> 13 14 </LinearLayout>
2.为碎片创建对应的类:LeftFragment.java
1 package com.ll.learnfragment; 2 3 import android.app.Fragment; 4 import android.os.Bundle; 5 import android.view.LayoutInflater; 6 import android.view.View; 7 import android.view.ViewGroup; 8 9 public class LeftFragment extends Fragment { 10 11 @Override 12 public View onCreateView(LayoutInflater inflater, ViewGroup container, 13 Bundle savedInstanceState) { 14 // TODO Auto-generated method stub 15 // 第一个是resource ID,指明了当前的Fragment对应的资源文件; 16 //第二个参数是父容器控件; 17 //第三个布尔值参数表明是否连接该布局和其父容器控件,在这里的情况设置为false,因为系统已经插入了这个布局到父控件,设置为true将会产生多余的一个View Group。 18 View view = inflater.inflate(R.layout.left_fragment, container, false); 19 return view; 20 } 21 }
3.有了对应的类,就可以在主界面的布局文件中添加碎片了
1 <fragment 2 android:id="@+id/left_fragment" 3 android:name="com.ll.learnfragment.LeftFragment" 4 android:layout_width="0dp" 5 android:layout_height="match_parent" 6 android:layout_weight="1"/>
4.替换碎片代码如下:
1 class ClickListener implements OnClickListener{ 2 3 @Override 4 public void onClick(View v) { 5 // TODO Auto-generated method stub 6 switch(v.getId()){ 7 case R.id.button: 8 // 1.生成要显示的fragment 9 AnothorRightFragment fragment = new AnothorRightFragment(); 10 // 2.得到碎片管理器 11 FragmentManager fragmentManager = getFragmentManager(); 12 // 3.通过碎片管理器开启一个事物 13 FragmentTransaction transaction = fragmentManager.beginTransaction(); 14 // 4.向容器中加入碎片,一般用replace()方法实现 15 transaction.replace(R.id.right_layout, fragment); 16 transaction.addToBackStack(null); 17 // 5.提交事物 18 transaction.commit(); 19 break; 20 default: 21 break; 22 } 23 } 24 } // end of ClickListener class
时间: 2024-11-10 07:36:19