在阐述我所遇到的问题之前,先通过查看Android源码发现这样几个代码样例:
1.
grep extends\ ViewGroup.MarginLayoutParams ./core/java/android/widget/ -rn
./core/java/android/widget/RelativeLayout.java:1030: public static class LayoutParams extends ViewGroup.MarginLayoutParams {
./core/java/android/widget/LinearLayout.java:1739: public static class LayoutParams extends ViewGroup.MarginLayoutParams {
2.
grep class\ MarginLayoutParams core/java/android/view/ViewGroup.java -rn
5376: public static class MarginLayoutParams extends ViewGroup.LayoutParams {
3.在measureChildWithMargins()方法中发现child.getLayoutParams()得到的LayoutParams可以直接转换成MarginLayoutParams。
protected void measureChildWithMargins(View child,
int parentWidthMeasureSpec, int widthUsed,
int parentHeight