Fragment的创建

***Fragment的使用
*1.首先要新建一个平板模拟器;
其次若编写代码时遇到Android Call requires API level 11 (current min is 8)的提示错误的解决方法:
右键点击项目->Android tools ->Clear Link Markers.即可临时解决,但是如果调试用的模拟器是低版本的,则在调试完后还有这个错误。
如果把manifest文件中的user-sdk的android:minSdkVersion改为报错的那个高版本就没事。比如下面:

<uses-sdk
    android:minSdkVersion="11" //这个之前是8
    android:targetSdkVersion="17"/>

*2.静态Fragment的创建

首先在left_fragment.xml中添加一个人Button按钮,right_fragment.xml中添加一个textView;
其次分别创建对应的.java文件,让LeftFragment和RightFragment都继承Fragment,并重写onCreatView()方法。如:

public class LeftFragment extends Fragment {
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View view = inflater.inflate(R.layout.left_fragment, container, false);//将left_fragment布局加载进来
		return view;
	}
}

最后在activity_main.xml中:

<fragment 
    android:id="@+id/left_fragment"
    android:name="com.example.fragmenttest.LeftFragment"//通过这个属性来显示的指明要添加的碎片类名,注意一定要将类的包名也加上
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"/>

<fragment 
    android:id="@+id/right_fragment"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:name="com.example.fragmenttest.RightFragment"
    android:layout_weight="1"/>

*3.动态Fragment的创建

首先在left_fragment.xml中添加一个人Button按钮,right_fragment.xml中添加一个textView;
其次分别创建对应的.java文件,让LeftFragment和RightFragment都继承Fragment,并重写onCreatView()方法。如:

public class LeftFragment extends Fragment {
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		return inflater.inflate(R.layout.left_fragment, null);
	}
}

然后在activity_main.xml中添加两个容器:

<FrameLayout 
    android:id="@+id/left_fragment"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="#f00">
</FrameLayout>

<FrameLayout 
    android:id="@+id/right_fragment"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="#0f0">
</FrameLayout>

最后在MainActivity.java中:

public class MainActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		//FragmentManager:Activity内部用来与Fragment进行交互的接口
		FragmentManager fragmentmanager = getFragmentManager();
		//开启一个事务
		FragmentTransaction transaction = fragmentmanager.beginTransaction();
		
		LeftFragment leftfragment = new LeftFragment();
		RightFragment rightfragment = new RightFragment();
		//将左侧的那个leftfragment添加到R.id.left_fragment中
		transaction.add(R.id.left_fragment, leftfragment);
		transaction.add(R.id.right_fragment, rightfragment);
		
		transaction.commit();//提交事务
	}
}

posted @ 2018-10-15 09:59  SanguineBoy  阅读(279)  评论(0编辑  收藏  举报