自定义view
自定义view包含什么方法
onDraw,OnMeasure,OnLayout
OnMeasure有什么参数?
OnMeasure包含widthSpec和highSpec。是个32位的数,高两位代码测量模式,低30位代表具体的值。
测量模式:
wrap_content->At Most
fill_parent->Exactly
getMeasureWidth和getWidth的区别
getMeasureWidth是在OnMeasure后有值,getWidth是在onLayout后有值,通过layout后的right减去left得到。
listView的实现逻辑
08-13 20:11:45.957 7151 7151 D SwitchSoftwareVersion: java.lang.Throwable
08-13 20:11:45.957 7151 7151 D SwitchSoftwareVersion: at com.oppo.engineermode.SwitchSoftwareVersion$GridViewAdapter.getView(SwitchSoftwareVersion.java:285)
08-13 20:11:45.957 7151 7151 D SwitchSoftwareVersion: at android.widget.AbsListView.obtainView(AbsListView.java:2400) 08-13 20:11:45.957 7151 7151 D SwitchSoftwareVersion: at android.widget.GridView.makeAndAddView(GridView.java:1439)
08-13 20:11:45.957 7151 7151 D SwitchSoftwareVersion: at android.widget.GridView.makeRow(GridView.java:366)
08-13 20:11:45.957 7151 7151 D SwitchSoftwareVersion: at android.widget.GridView.fillDown(GridView.java:307)
08-13 20:11:45.957 7151 7151 D SwitchSoftwareVersion: at android.widget.GridView.fillFromTop(GridView.java:442)
08-13 20:11:45.957 7151 7151 D SwitchSoftwareVersion: at android.widget.GridView.layoutChildren(GridView.java:1283)
08-13 20:11:45.957
7151 7151 D SwitchSoftwareVersion: at android.widget.AbsListView.onLayout(AbsListView.java:2199)
在layoutChildren中通过obtainView,getView获取每个item的view,来显示。
如何获取状态栏高度?
int resourceId = getContext().getResources()
.getIdentifier("status_bar_height", "dimen", "android");
getScrollY的含义是什么?
参考:
https://blog.csdn.net/linmiansheng/article/details/17767795
其实就是左上角的坐标值。
ConstraintLayout设置gone属性会怎样?
布局当然就会顶上去罗。
参考:https://blog.csdn.net/yinxing2008/article/details/82462733