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();//提交事务
}
}