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"/>

*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中添加两个容器:



最后在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  阅读(316)  评论(0)    收藏  举报