Android中Fragment的两种使用方法
来源:互联网 发布:linux date 格式化 编辑:程序博客网 时间:2024/06/05 06:28
Fragment作为Android的一个基本组件,学会使用它还是很方便的,当然第一次接触Fragment,我还是很蒙的,真的是不会使用。但是随着时间的积累,我慢慢的也懂了,想想刚开始的无奈,现在真是有一点小开森啊^_^
好了,开始讲使用的方法了。
Fragment有两种是使用的方法,根据使用的方法不一样,它分为动态使用和静态使用,下面我分别进行介绍。
要使用Fragment,我们要先新建一个类来继承Fragment,下面我给出两个类:
public class BottomFragment extends Fragment{@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View _View = inflater.inflate(R.layout.fragment_bottom_layout, container,false);return _View;}}
public class CenterFragment extends Fragment{@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View _View = inflater.inflate(R.layout.fragment_center_layout, container,false);return _View;}}
在这两个类里面,我们需要有两个布局文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ff0000" android:orientation="vertical" ></LinearLayout></span>因为我们只是一个示例,所以我就不往布局文件里放什么控件了,只需要一个简单的文件就行了。
然后我给大家看一下MainActivity的布局文件,也就是Fragment的使用方法1--动态使用:
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.fragment_demo.MainActivity" > <FrameLayout android:id="@+id/layout_center" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="5" android:background="#ff0000" > </FrameLayout> <FrameLayout android:id="@+id/layout_bottom" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#00ff00" > </FrameLayout></LinearLayout>
在这个布局文件里我们放了两个FrameLayout,这就是用来放Fragment的,我们需要动态的将Fragment放在FrameLayout中,这个在MainACtivity中实现.
MainActivity.java
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/** * java代码动态添加一个Fragment到Activity */FragmentManager fragmentManager = getFragmentManager();FragmentTransaction transaction = fragmentManager.beginTransaction();transaction.add(R.id.layout_center,new CenterFragment());transaction.add(R.id.layout_bottom, new BottomFragment());transaction.commit();}
}这就是动态的加载Fragment,因为它可以加不同的Fragment到布局中,灵活性很高。
下面试静态的加载Fragment,也就是使用方法2:静态加载不要在MainActivity中设置什么,直接在布局文件中进行设置就可以了,这样灵活性比较差。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.fragment_demo.MainActivity" > <fragment android:name="com.example.fragment_demo.CenterFragment" android:id="@+id/fragment_center" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="5" /> <fragment android:name="com.example.fragment_demo.BottomFragment" android:id="@+id/fragment_bottom" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /></LinearLayout>
在布局文件里使用<fragment />标签来设置Fragment,这样虽然方便一点,但是灵活性很差,不建议使用。
好了,Fragment的使用方法我已经说好了,但是具体的使用,比如Fragment和Activity的通信,Fragment和Fragment的通信都是比较复杂的东西,大家可以进一步的深入了解Fragment的使用^_^.
0 0
- Android中Fragment的两种使用方法
- Android学习笔记之Fragment的两种使用方法
- Android学习笔记之Fragment的两种使用方法
- Android——Fragment介绍及两种基本使用方法
- Android中Fragment的两种创建方式
- ANDROID中FRAGMENT的两种创建方式
- Android Fragment使用的两种方法
- Android Fragment使用的两种方法
- Fragment介绍及两种使用方法
- Android之Gallery的两种使用方法
- Android之Gallery的两种使用方法
- HTML中label的两种使用方法
- HTML中label的两种使用方法
- Android中不同Activity间所托管的Fragment通信的两种方法
- Android中Fragment与Activity之间的交互(两种实现方式)
- 【Android开发技巧】Fragment中获取Context对象的两种方法
- 【Android进阶篇】Fragment的两种加载方式
- Android之fragment的两种创建方式
- 【JAVA学习】7.javabean
- The React.js Way: Getting Started Tutorial
- HDU ACM 2153仙人球的残影
- https://leetcode.com/problems/first-missing-positive/
- ios中NSString与NSDate互转
- Android中Fragment的两种使用方法
- HDU-2079-母函数
- open函数读文件最后乱码
- Spring Boot开发之流水无情(二)
- iOS利用Runtime自定义控制器POP手势动画
- 数据建模
- CoreData
- Linux查找占用的端口,并杀死进程
- mysql join和where