BUG #28475 海外版登陆界面缺少Hi图标中代码不起作用的问题
dynamicAddView会调用BaseActivity的dynamicAddSkinEnableView,
然后调用AttrFactory.get,通过if else判断
mSkinAttr = new DrawableLeftAttr();
看代码知道最终调用setCompoundDrawables。通过debug发现已进入equas方法,
但最终并未成功加载图片到textView的左侧。
然后去看setCompoundDrawables源码,发现有这么一句注释。
Sets the Drawables (if any) to appear to the left of, above, to the
* right of, and below the text. Use {@code null} if you do not want a
* Drawable there. The Drawables must already have had
* {@link Drawable#setBounds} called.
skin.lib不能修改源码,只能写demo来验证是不是这个原因造成的。
布局这样子,能正常显示,运行起来也没有问题。
然后代码里修改,通过setCompoundDrawables在Textview左侧加图片,运行发现不能正常显示。
调用drawable.setBounds 后能够正常显示。
2、直接调用setCompoundDrawablesWithIntrinsicBounds方法,不用setBounds也能正常显示。