第三-第四章 布局和fragment

来源:互联网 发布:java goto语句 编辑:程序博客网 时间:2024/05/29 16:29

1布局

最近开发写布局写的也蛮多的,对一些布局有了一些新的认识这里就记录下来

布局组件

  • weight这个权重的表示适用于linearLayout,并且linearLayout必须制定方向,不然会显示不出来;layout表示文字在空间中的显示位置,而gravity_layout表示控件在布局中的显示位置;
  • EditText的去下标的方法是背景给@null,而不是null;
  • textview 有个特性可以在他的上下左右设置一个图片 drawableLeft;
  • Relativelayout 的在某某右边是layout_torightof,和某某右对齐是 layout_alignRight
  • 隐藏标题栏 requestWindowFeature(Window.Feature_no_title)
  • listView的使用基本步骤要记得,不要因为使用了recycleView就忘了使用listView

像素尺寸解析

  • px 是像素的意思,已经渐渐废弃
  • dp 是密度无关像素的意思,和px相比他能在不同密度的屏幕显示比例保持一致
  • sp是可伸缩像素的意思,解决了文字的适配问题
    现在基本是布局用dp,文字大小用px;

2 fragment

1.动态的添加Fragment步骤:写好fragment布局,//向活动添加碎片,根据屏幕的纵向和横向显示
//1,获取碎片管理器
FragmentManager fragment=getFragmentManager();
//2,碎片的显示需要使用FragmentTransaction类操作
FragmentTransaction transacction=fragment.beginTransaction();
//获取屏幕管理器和默认的显示
Display display=getWindowManager().getDefaultDisplay();
//判断横屏
if(display.getWidth()>display.getHeight()){
//获取java类
Frament1 frament1 = new Frament1();
transacction.replace(android.R.id.content, frament1);
}else{
Frament2 frament2 = new Frament2();
transacction.replace(android.R.id.content, frament2);
}
//添加了一个返回栈可以上一个fragment1,而不是直接退出
transacction.addToBackStack(null);
//使用FragmentTransaction必须要commit
transacction.commit();

2. Fragment和activity之间的通信
从activity中获取Fragment中是通过getFragmentManager().findFragmentById(R.id.fragment),从Fragment中获取activity是通过getActivity(),,他是可以当成context对象使用的

老生常谈的问题来了fragment的生命周期

  1. onActtach() 当fragment被加入到activity时调用(在这个方法中可以获得所在的activity)。
  2. onCreat(); 活动创建
  3. onCreatView() 当activity要得到fragment的layout时,调用此方法,fragment在其中创建自己的layout(界面)。
  4. onActivityCreated(); 当activity的onCreated()方法返回后调用此方法。表示活动中创建Fragment完成
  5. onStart()
  6. onResume()
  7. onPause() 失去屏幕
  8. onStop() 消失不见
  9. onDestroyView(); 当fragment的layout被销毁时被调用。
  10. onDestroy();
  11. onDetach() 当fragment被从activity中删掉时被调用。
    这里写图片描述
    在Fragment中也可以通过onSaveInstanceState()保存数据 通过bundle来传递
1 0