安卓Fragment学习
呜呜呜这节课还没弄懂,明天就要学习Service了。我太难了qaq…
Fragment我真的是一窍不通了 ,慢慢来吧~
首先我们来看一下定义
我们可以把他看成一个小型的Activity,又称Activity片段!想想,如果一个很大的界面,我们 就一个布局,写起界面来会有多麻烦,而且如果组件多的话是管理起来也很麻烦!而使用Fragment 我们可以把屏幕划分成几块,然后进行分组,进行一个模块化的管理!但他一定要在Activity里运行
哪有那么难,把它看成一个Activity就完事惹!
分为两类:静态/动态加载Fragment
遵循以下步骤
写不动了…暂停 我又回来了!!
静态加载Fragmen(加入Fragment组件)
- 创建Fragment布局文件,就是你想让它显示的界面内容。记得继承Fragment父类~
- 然后重写onCreateView()方法。在该方法中调用:inflater.inflate(布局名,Viewgroup对象,false)方法加载Fragment的布局文件,接着返回加载的view对象
public class Fragmentone extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container,false);
return view;
}
}
- 在需要加载Fragment的主Activity对应的布局文件中添加fragment的标签, 记住,name属性是全限定类名哦,就是要包含Fragment的包名。
<fragment
android:id="@+id/fragment1"
android:name="com.jay.example.fragmentdemo.Fragmentone"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
- Activity在onCreate( )方法中调用setContentView()加载布局文件即可!
动态加载Fragment(在java代码中手动添加)
一般都是用这个
- 创建Fragment布局和代码文件,同上
- 要在总布局文件中添加一个碎片类实例需要的容器(一般用FrameLayout)
- 在主Java代码中写入Fragment
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//实例化我们需要的Fragment对象(当作类)
Fragment1 fragment1=new Fragment1();
//获取一个FragmentTransaction的实例
FragmentTransaction ft=getSupportFragmentManager().beginTransaction();
//通过add方法添加fragment实例
//add(放在哪个容器里id号,放入的东西:Fragment对象)
ft.add(R.id.layout1,fragment1);
//记得提交
ft.commit();
}
}