【发布时间】:2015-06-04 03:37:10
【问题描述】:
当我在搜索 android 源代码时,我发现了一些我无法理解或无法忍受的东西。您可以在下面的框架源代码中看到所有 onSetLayoutParams:
./base/core/java/android/widget/Toolbar.java: protected void onSetLayoutParams(View child, ViewGroup.LayoutParams lp) {
./base/core/java/android/widget/GridLayout.java: protected void onSetLayoutParams(View child, ViewGroup.LayoutParams layoutParams) {
./base/core/java/android/widget/GridLayout.java: super.onSetLayoutParams(child, layoutParams);
./base/core/java/android/view/View.java: ((ViewGroup) mParent).onSetLayoutParams(this, params);
./base/core/java/android/view/ViewGroup.java: protected void onSetLayoutParams(View child, LayoutParams layoutParams) {
onSetLayoutParams 的每一个定义都会被处理,但是 View.setLayoutParams 会将其父级转换为 ViewGroup,然后调用 ViewGroup 的 onSetLayoutParams。我不认为这在 java 中是正确的,但所有的 android 似乎都运行得很好。
对不起我的英语不好。
【问题讨论】:
-
该方法受保护,但我无法从继承的类中访问它。 =/
-
因为它被标记为@hide,所以它没有包含在SDK中,也没有包含在android.jar中(所以你不能覆盖或调用它)。
标签: android android-layout layoutparams