文档章节

Activity 之继承学习 Fragment

Dougien
 Dougien
发布于 2016/01/20 00:10
字数 306
阅读 47
收藏 0

知识点

requestWindowFeature 是用来设置全屏 或者设置标题上的进度条

   设置窗口特征 在标题上显示进度条 

            启用显示进度条: requestWindowFeature(Window.FEATURE_PROGRES);

            启用不显示进度条 :requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

    Activity中

    this.requestWindowFeature(Window.FEATURE_NO_TITLE);    getWindow.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);


requestWindowFeature 必须在Activity.setContentView()之前调用,否则无效。



BaseActivity .java

    onCreate 方法设置窗体属性 并给活动加xml 子类覆盖getLayoutId()方法设置xml

    子类覆盖initView方法

onCreate(Bundle savedInstanceState) {
    .onCreate(savedInstanceState);
    requestWindowFeature(Window.);
    = ;
    (getLayoutId() != ) {
        setContentView(getLayoutId());
    }
    initView(savedInstanceState);

}


MainACtivity  继承baseActivyity

    initView(Bundle savedInstanceState) {

        = (RadioGroup)findViewById(R.id.);
setFragmentManager();
        .setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener() {
            onCheckedChanged(RadioGroup group, checkedId) {
                setFragmentManager(checkedId);
            }
        });
    }

    setFragmentManager(checkedId){
        = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = .beginTransaction();
        Fragment fragment = FragmentFactory.(checkedId);
        fragmentTransaction.replace(R.id.,fragment);
        fragmentTransaction.commit();
    }

    getLayoutId() {
        R.layout.;
    }


FragmentFactory      Fragment的生产工厂根据 值创建不同的Fragment

FragmentFactory {

    Fragment getInstanceByIndex(index){
        Fragment fragment = ;
        (index){
            :
                fragment = MainFragment();
                ;
            :
                fragment = ServerFragment();
                ;
            :
                fragment = BbsFragment();
                ;
            :
                fragment = MapFragment();
                ;
        }
        fragment;
    }

}

baseFragment

View onCreateView(LayoutInflater inflater,  ViewGroup container,  Bundle savedInstanceState) {
    = inflater.inflate(getLayoutId(), );
    ;
}

onActivityCreated(Bundle savedInstanceState) {
    .onActivityCreated(savedInstanceState);
    initView(savedInstanceState);
}

BaseActivity onCreate()  getLayoutId() -->MainActivity 覆盖 的到 R.layout.fragment-->继续回到 BaseActivity setContentView (此时对象是MainActivity,相当于MainACtivity.setContentView) -->MainActivity initView方法覆盖

-->MainACtivity setFragmentManager(1) 传默认的fragment坐标-->MainActivity setFragment(int)方法-->调用 FragmentFactory类 getInstanceByiIndex(int)-->通过(int)返回所需要的fragment--> BaseFragment onCreateView 通过getLayoutId()-->MainFragment getLayoutId()覆盖 返回fragment_main-->返回 view -->BaseFragment onActivityCreated 方法中  -->MainFragment 覆盖initView()走完流程。。。

© 著作权归作者所有

上一篇: java 注解
下一篇: andorid启动动画
Dougien
粉丝 4
博文 29
码字总数 17891
作品 0
长沙
程序员
私信 提问
Android零基础入门第84节:引入Fragment原来是这么回事

随着大众生活水平的提高,再加上移动互联网的迅速发展,几乎每个人都至少拥有一台搭载Android系统的移动设备。Android设备的多样性给我们带来了很大的便捷,各Android设备拥有不同分辨率和不...

鑫鱻
2017/10/26
0
0
Android4.0-Fragment框架实现方式剖析(一)

经过反复的学习对比,个人觉得带着问题学习新知是最有效的学习方式,因此文本就以提问的方式来讲述Fragment框架实现方式。 1、什么是Fragment? Fragment包含在Activity中,Fragment只能存在...

程序袁_绪龙
2015/07/07
0
0
Android Fragment学习笔记(一)----Fragment的生命周期和派生类

最近有时间看看有关Fragment的一些介绍,自己做下笔记,记录下学习足迹。之前在Pad上使用QQ的时候就注意到Pad版本做的比较合理,由于pad屏幕比较大,左侧显示QQ联系人的列表,右侧可以显示具...

长平狐
2013/04/25
204
0
Fragment 的使用(1)

基本:http://www.cnblogs.com/mengdd/archive/2013/01/08/2851368.html 深入:http://blog.csdn.net/pi9nc/article/details/12249619 Fragment  Android是在Android 3.0 (API level 11)开始......

chuiyuan
2014/07/23
0
0
Android Fragment 基本介绍

Fragment   Android是在Android 3.0 (API level 11)开始引入Fragment的。   可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Act...

postdep
2014/06/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java编程学习-Java虚拟机(JVM)以及跨平台原理

相信大家已经了解到Java具有跨平台的特性,可以“一次编译,到处运行”,在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的。 那么,跨平台是怎样实现的呢?这...

Java领航员
17分钟前
0
0
学JFinal不迷路,JFinal优质资源列表(欢迎反馈更新)

学JFinal不迷路,记录一下JFinal相关的资源、产品、讲师等信息(所有信息排名不分先后)。 一、相关站点: 1、JFinal官网-问答、分享、文档、交流、俱乐部 http://www.jfinal.com 2 、JFina...

山东-小木
21分钟前
0
0
项目学习(2)-order-job

在当前的系统中,因为并发量并不高,服务之间发起异步请求或者异步调用时,没有使用到消息中间件。 而是在各个服务(子系统)的数据库中,创建了event_queue事件对列表和event_handler事件处...

太猪-YJ
29分钟前
0
0
gradle grovvy中的闭包

1. 无参数的闭包 //这b1就是一个闭包def b1={ println "hello b1"}//定义方法,包含闭包类型的参数def method1(Closure closure){closure()}//执行method1method1(b1) 执行结果 ...

edison_kwok
今天
3
0
基于Spring Boot + Dubbo的全链路日志追踪(一)

一、 概要 当前公司后端整体架构为:Spring Boot + Dubbo。由于早期项目进度等原因,对日志这块没有统一的规范,基本上是每个项目自己管自己的日志。这也对后面的问题排查带来了很大的困难,...

明天以后
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部