美文网首页
《Android编程权威指南》第8~10章读书笔记

《Android编程权威指南》第8~10章读书笔记

作者: EmanLu | 来源:发表于2016-11-24 00:14 被阅读19次

    XML布局属性

    样式、主题及主题属性

    样式style XML资源文件,含有用来描述组件行为和外观的属性定义。

    主题theme 是各种样式的集合。是属性指向其它样式资源的一种样式资源。

    主题属性引用:可将预定义的应用主题样式添加给指定组件。如

    ?android:listSeparatorTextViewStyle

    dp、sp以及屏幕像素密度

    dpdensity-independent pixel 的缩写,也有写作dip的,意为密度无关像素。布局时常用这种单位,1dp单位在设备屏幕上宗师等于1/160英寸。

    spscale-independent pixel的缩写,意为缩放无关像素。会受到用户字体偏好设置的影响。通常用于设置字体大小。

    布局参数

    名称不以layout_开头的属性作用于组件。组件生成时,会调用某个方法按照属性及属性值进行自我配置。

    名称以layout_开头的属性则作用于组件的父组件。将这些属性统称为布局参数,通知父布局如何在内部安排自己的子元素。

    边距与内边距

    边距:也称作外边距,android:layout_margin(XXX),XXX是指leftrighttopbottom四个方向,不添加方向的话就是指四个方向都添加同样的边距。属于布局参数,决定了组件之间的距离。

    内边距android:padding(XXX),XXX是指leftrighttopbottom四个方向,不添加方向的话就是指四个方向都添加同样的内边距。告诉组件,在绘制自身时,要比所含内容大多少。

    android:layout_weight属性的工作原理

    该属性告诉LinearLayout如何进行子组件的布置安排。在决定子组件视图的宽度时,LinearLayout使用的是layout_width(height)layout_weight参数的混合值。

    1.LinearLayout查看组件的layout_width属性值(竖直方向看layout_height属性值)占据多少空间;

    2.LinearLayout根据layout_weight属性值对剩余空间进行分配。

    Fragment启动Activity

    基本等同于从Activity启动另一个Activity的实现方式,调用Fragment.startActivity(Intent intent)

    获取Extra信息

    1.直接获取

    getActivity().getIntent().getExtra(),如果是序列化对象就是getSerializableExtra()

    弊端:牺牲了fragment的封装性,fragment总是由某个Activity托管着,不再是可复用的构建单元。

    2.fragment argument

    每个Fragment实例都可附带一个Bundle对象,该对象包含键值对,一个键值对即一个argument

    创建fragment argument之前,先创建Bundle对象,使用Bundle限定类型的put方法,将argument添加到bundle中。如:

    Bundle args = new Bundle();

    args.putSerializable("xxx",yyy);

    2.1.附加argumentfragment

    调用Fragment.setArguments(Bundle bundle)注意:该过程必须在Fragment创建后,添加给Activity之前完成。

    2.2.获取argument

    先调用Fragment.getArguments()获取argument,再调用Bundle限定类型的get方法。如:

    YYY yyy = getArguments().getSerializable("xxx");

    无需getActivity(),即无需托管Activity的上下文,这保留了Fragment的独立性。

    通过Fragment获取返回结果

    Fragment.startActivityForResult()

    Fragment.onActivityResult()

    注意:fragment能够重Activity中接收返回结果,但其自身无法产生返回结果,只有Activity拥有返回结果,所以Fragment没有setResult()

    相关文章

      网友评论

          本文标题:《Android编程权威指南》第8~10章读书笔记

          本文链接:https://www.haomeiwen.com/subject/fhmmpttx.html