• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android开发: fragment解析及案例

Android开发: fragment解析及案例

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android开发fragment,android开发案例,android开发 json解析,android开发gson解析,android开发小案例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android开发: fragment解析及案例


 

Fragment 设计理念

在设计应用时特别是Android 应用 ,有众多的分辨率要去适应,而fragments 可以让你在屏幕不同的屏幕上动态管理UI。例如:通讯应用程序(QQ),用户列表可以在左边,消息窗口在右边的设计。而在手机屏幕用户列表填充屏幕当点击某一用户时,则弹出对话窗口的设计,如下图:

Android开发: fragment解析及案例 帮客之家

Fragment的生命周期 

每一个fragments 都有自己的一套生命周期回调方法和处理自己的用户输入事件。 对应生命周期可参考下图:

其中大多数程序必须使用Fragments 必须实现的三个回调方法分别为:

onCreate

系统创建Fragments 时调用,可做执行初始化工作或者当程序被暂停或停止时用来恢复状态,跟Activity 中的onCreate相当。 

onCreateView

用于首次绘制用户界面的回调方法,必须返回要创建的Fragments 视图UI。假如你不希望提供Fragments 用户界面则可以返回NULL。 

onPause

当用户离开这个Fragments 的时候调用,这时你要提交任何应该持久的变化,因为用户可能不会回来。更多的事件可以参考上图的生命周期关系图

Fragment 的类别

系统内置了三种Fragments ,这三种Fragments 分别有不同的应用场景分别为:

DialogFragment

对话框式的Fragments,可以将一个fragments 对话框并到activity 管理的fragments back stack 中,允许用户回到一个前曾摒弃fragments.

ListFragments

类似于ListActivity 的效果,并且还提供了ListActivity 类似的onListItemCLick和setListAdapter等功能。

PreferenceFragments

类似于PreferenceActivity .可以创建类似IPAD的设置界面。 

Fragment 的详细使用 

首先先来看一张DEMO 效果图:

左边点击时,右边的字符会与左边选中的项的字符相同。与IPAD上的设置界面很相似,这一点是否借鉴了ipad 上的UI呢?

相就的XML文件:

 
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:layout_width="match_parent" 
  4.     android:layout_height="match_parent" 
  5.     android:orientation="horizontal" > 
  6.  
  7.    <fragment class="com.xuzhi.fragment.FragmentDemoActivity$TitlesFragment" android:id="@+id/titles" android:layout_weight="1" 
  8.        android:layout_width="0px" android:layout_height="match_parent" 
  9.        /> 
  10.     
  11.    <FrameLayout android:id="@+id/details" android:layout_weight="1" android:layout_width="0px" android:layout_height="match_parent" 
  12.        android:background="?android:attr/detailsElementBackground" 
  13.        ></FrameLayout> 
  14. </LinearLayout> 

主界面代码(己做注释):

 
  1. package com.xuzhi.fragment; 
  2. import android.app.Activity; 
  3. import android.app.AlertDialog; 
  4. import android.app.Fragment; 
  5. import android.app.FragmentTransaction; 
  6. import android.app.ListFragment; 
  7. import android.os.Bundle; 
  8. import android.util.TypedValue; 
  9. import android.view.LayoutInflater; 
  10. import android.view.View; 
  11. import android.view.ViewGroup; 
  12. import android.widget.ArrayAdapter; 
  13. import android.widget.ListView; 
  14. import android.widget.ScrollView; 
  15. import android.widget.TextView; 
  16.  
  17. public class FragmentDemoActivity extends Activity { 
  18.  
  19.     public static String[] array = { "text1,", "text2", "text3", "text4", 
  20.             "text5,", "text6", "text7", "text8" }; 
  21.  
  22.     /** Called when the activity is first created. */ 
  23.     @Override 
  24.     public void onCreate(Bundle savedInstanceState) { 
  25.         super.onCreate(savedInstanceState);  
  26.         setContentView(R.layout.main); 
  27.     } 
  28.  
  29.          
  30.     public static class TitlesFragment extends ListFragment { 
  31.  
  32.         boolean mDualPane; 
  33.         int mCurCheckPosition = 0; 
  34.          
  35.         @Override 
  36.         public void onCreate(Bundle savedInstanceState) { 
  37.             // TODO Auto-generated method stub 
  38.             super.onCreate(savedInstanceState); 
  39.             System.out.println("Fragment-->onCreate"); 
  40.         } 
  41.          
  42.         @Override 
  43.         public View onCreateView(LayoutInflater inflater, ViewGroup container, 
  44.                 Bundle savedInstanceState) { 
  45.             // TODO Auto-generated method stub 
  46.             System.out.println("Fragment-->onCreateView"); 
  47.             return super.onCreateView(inflater, container, savedInstanceState); 
  48.         } 
  49.          
  50.         @Override 
  51.         public void onPause() { 
  52.   &nb
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android开发: fragment解析及案例

相关文章

  • 2017-05-26【读书笔记】【Android 开发艺术探索】第3章 View 的事件体系
  • 2017-05-26银联支付,支付
  • 2017-05-26Android View事件分发机制
  • 2017-05-26高效地分析Android内存--MAT工具解析
  • 2017-05-26android源码解析之(三)--)HandlerThread
  • 2017-05-26连点处理,禁止按钮在短时间内被多次点击,按钮短时间内
  • 2017-05-26Android触摸事件(一)-AbsTouchEventHandle
  • 2017-05-26安卓7.0首批截图公布:惊现汉堡菜单,安卓汉堡
  • 2017-05-26JSON解析和XML解析对比,JSON解析XML解析
  • 2017-05-26Android Studio安装指南及genymotion配置

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 沉浸式状态栏与导航条,状态栏导航条
    • Android应用程序安装过程浅析
    • 向android studio中导入带有jni的eclipse项目
    • Android中接收系统广播消息
    • Android中的沉浸式状态栏效果,android沉浸状态栏
    • 使用nginx作为tcp代理的安装配置例子
    • 安卓开发之RecyclerView,安卓recyclerview
    • LoaderManager与CursorLoader用法,cursorloader
    • AS400银行核心系统开发中的技术总结--交易和组件写法
    • Android 环境搭建 以及 第一个android 程序的编写,搭建android

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有