【问题标题】:Android sourcecode for ProgressBar.java makes no senseProgressBar.java 的 Android 源代码没有意义
【发布时间】:2011-12-06 20:11:28
【问题描述】:

我正在查看 Android SDK 中的 ProgressBar.java 源代码。在 android.widget.ProgressBar 的第 191 行它指出:

 mMinHeight = a.getDimensionPixelSize(R.styleable.ProgressBar_minHeight, mMinHeight));

为什么在初始化时同时在参数列表中使用 mminHeight?有人可以阐明这一点吗?完整的源代码可以在这里找到grepcode

【问题讨论】:

    标签: java android android-progressbar


    【解决方案1】:

    在第 171 行看到它调用initProgressBar 的地方吗?该方法将 mminHeight 初始化为值 24。然后对 getDimensionPixelSize 的调用将其用作默认值。

    【讨论】:

    • 哦,我错过了。有时很难仔细阅读所有这些源代码,一段时间后它就会像意大利面条一样出现。
    【解决方案2】:

    第二个参数只是一个默认值,如果getDimensionPixelSize 无法找到请求的值,则应返回该默认值。传入您尝试设置为默认值的变量是很常见的(如果有点奇怪)。实际上,这段代码说“如果你有这个值,就设置它,或者如果你没有,就让变量保持原样”。

    【讨论】:

    • 很有趣,所以这就像 JavaScript 中的回调样式?
    • 这不像是一个javascript回调。回调基本上只是将函数(或其地址)作为参数传递。这里的Android方法只是取一个用户传递的默认值(可以定义为任何类型,如果你愿意,可以包括回调),如果找不到真正的返回值,则返回这个默认值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    相关资源
    最近更新 更多