BLu*_*NiX 3 java android android-appcompat layout-inflater
我在使用 AppCompat 时突然想到,我一直在使用类似的东西,Button而不是android.support.v7.widget.AppCompatButton在我的布局 XML 文件中。我做了一个测试,通过view.getClass().getSimpleName()并确认即使我Button在 XML 中将它声明为 a ,正在加载的类实际上是AppCompatButton.
这是如何工作的,在引擎盖下?
在研究这个话题的过程中,为了正确提问,我自己发现了答案。
使用时AppCompatActivity,会发生一些有趣的事情:
LayoutInflater.Factory应用于默认值LayoutInflater,通过setFactory。AppDelegateImplAppCompat 中的类实现该Factory接口,并根据 API 级别选择其中一个作为工厂委托。还有一个稍微不同的Factory2,针对以后的 API。Factory'screateView方法,该方法有机会覆盖创建的实际视图。AppCompatViewInflater,如果找到匹配项,则视图由委托膨胀,而不是默认膨胀器。| 归档时间: |
|
| 查看次数: |
385 次 |
| 最近记录: |