一,return语句
最常用的是返回方法指定类型的值(这个值总是确定的),
另一种用的相对较少的用法是结束方法的执行(仅仅一个return语句)。
二、布局中容易忽视的属性方法
①setClipChildren
作用1:clipChildren 作用于爷ViewGroup,用于限制“爷爷ViewGroup的孙子View”是否可以超出“孙子View的父ViewGroup”的范围,默认为true即不可以。
作用2:孙子View虽然能显示超出 其父ViewGroup , 但不会 超出 其爷爷ViewGroup。 这是需要注意的地方.
②setClipToPadding:
该属性定义了ViewGroup是否将裁剪它的子View,和根据
它的padding(如果padding不为0)调整任何边缘效果。这个属性的默认值是true。属性值必须是boolean值,ture或false。
关联方法:setClipToPadding(boolean)
③setDescendantFocusability:
这个方法是用来处理Viewgroup和子View获取焦点的优先级,参数是个常量。
有三个常量可以选择:
1.blocksDescendants:ViewGroup拦截,不让子 view获取焦点。
2.beforeDescendants:ViewGroup优先尝试(尝试的意思是,根据View或ViewGroup当前状态来判断是否能得到焦点,如是否可见,是否可获取焦点等等,在View的requestFocus方法的注释中提到,下同)获取焦点,若ViewGroup没拿到焦点,再遍历子 view(包括所有直接子 view和间接子 view),让子 view尝试获取焦点。
3.afterDescendants:先遍历子 view,让子 view尝试获取焦点,若所有子 view(包括所有直接子 view和间接子 view)都没拿到焦点,才让ViewGroup尝试获取焦点。
三,优化布局中用到的两个个关键字:include,merge。
通俗来说,include主要是为了复用布局,避免重复;
merge是为了归并布局,将待include的布局里的跟视图去掉,减少布局层级。
四、在android studio中高效快速的预览RecyclerView和ListView的布局:参考大神文章
使用诸如:tools:listitem="@layout/item_xxx"
tools:text="@xxx"
五、加载字体
.ttf(TureType) 或者 .otf(OpenType) 格式的字体文件
六、适配性布局
在考虑到UI布局会在不同分辨率的移动终端上使用,因此,布局中通常不建议将布局宽高写死,而是通过内容决定高度;
另外,前一个控件对后一个控件应该有相对约束的能力,而不应该仅仅靠间距margin来定位距离。
对于触摸屏幕产生点击效果的控件,可以通过设置内边距来增大点击范围。
在线性布局中有一个非常实用的属性weight:View的最终宽度 = View本来定义的宽度 + View在LinearLayout中剩余空间中所占比例的宽度。因此,很多时候直接根据weight权重大小设置控件在空间内的宽度占比,这时候需要设置view本来的宽度为0.