初学Android Fragment
2015-08-04 15:58
603 查看
其实昨天就学了一些,开始根本不知道Fragment到底是个什么东东,反复看老师的视频。
个人理解,Fragment相当于Activity中的一个个模块。类似微信的界面,点击微信,展示微信的Fragment,点击通讯录,展示通讯录的Fragment。。。
下面是一个简单的例子:在主布局上,点击按钮,跳转到另个fragment。
注:Fragment要引用v4.app.Fragment
MainActivity:
AnotherFragment:
AnotherFragment布局:
个人理解,Fragment相当于Activity中的一个个模块。类似微信的界面,点击微信,展示微信的Fragment,点击通讯录,展示通讯录的Fragment。。。
下面是一个简单的例子:在主布局上,点击按钮,跳转到另个fragment。
注:Fragment要引用v4.app.Fragment
MainActivity:
public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); if(savedInstanceState == null){ getSupportFragmentManager().beginTransaction() .add(R.id.container,new PlaceholdeFragment()) .commit(); } } }
PlaceholdeFragment
public class PlaceholdeFragment extends Fragment { public PlaceholdeFragment(){ } @Override public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle saveInstanceState){ View rootView = inflater.inflate(R.layout.fragment_main,container,false); rootView.findViewById(R.id.btnShowAnotherFragment).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //呈现anotherFragment 首先获取FragmentManager,然后beginTransation开始进行变化,之后将一个新的fragment添加进来,最后提交。 //为何使用replace而不使用add。replace:使用一个新的fragment替换当前,add为直接添加一个新的fragment。因为之前已经有了一个,所以用replace。 getFragmentManager().beginTransaction().replace(R.id.container,new AnotherFragment()).commit();//传主布局的id,和新的fragment } }); return rootView; } }主Fragment的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context=".MainActivityFragment"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="呈现另一个Fragement" android:id="@+id/btnShowAnotherFragment" android:layout_gravity="center_horizontal" /> </LinearLayout>
AnotherFragment:
public class AnotherFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle saveInstanceState){ //初始化布局,需要解析的布局是:R.layout.fragment_another 主布局是:container View root = inflater.inflate(R.layout.fragment_another,container,false); return root; } }
AnotherFragment布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="this is another fragment" android:id="@+id/textView" /> </LinearLayout>
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories