博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Activity 之继承学习 Fragment
阅读量:7173 次
发布时间:2019-06-29

本文共 2713 字,大约阅读时间需要 9 分钟。

hot3.png

知识点

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()走完流程。。。

转载于:https://my.oschina.net/Dougien/blog/605769

你可能感兴趣的文章
写得好 git 提交信息
查看>>
Linux下获取线程TID的方法
查看>>
Redis和Memcache的区别分析(转)
查看>>
servlet容器与web容器的概念
查看>>
网络请求 http get post 一
查看>>
《计算机问题求解》总结——2014年CCF计算机课程改革导教班(2014.07.11)
查看>>
Google Chrome Plus——绿色便携多功能谷歌浏览器
查看>>
Instant Run
查看>>
史上最详细的iOS之事件的传递和响应机制
查看>>
Subsequence(两个单调队列)
查看>>
一行代码实现iOS序列化与反序列化
查看>>
Xamarin提示Build-tools版本过老
查看>>
一次Win10安装体验
查看>>
主流界面搭建原理(类似百思不得姐主界面)
查看>>
LogViewer - 方便的日志查看工具
查看>>
Spring依赖注入:注解注入总结
查看>>
Java正则表达式的语法与示例
查看>>
Batch
查看>>
取消Eclipse SVN的自动链接方式
查看>>
Lamda表达式,map和集合操作
查看>>