Ali*_*ani 45 android deprecated
public void setTextAppearance(Context context,int resId)在API级别1中添加
此方法在API级别23中已弃用.请改用setTextAppearance(int).
我的问题:为何被弃用?为什么它不再需要Context
了?最重要的是,如何使用setTextAppearance(int resId)
旧版本?
Rus*_*amG 103
您可以使用TextViewCompat
support/androidX库:
import android.support.v4.widget.TextViewCompat // for support-library
import androidx.core.widget.TextViewCompat // for androidX library
// ...
TextViewCompat.setTextAppearance(view, resId)
Run Code Online (Sandbox Code Playgroud)
在内部,它从view.getContext()
API <23上的view()获取上下文.
Hen*_*nry 48
如何使用setTextAppearance(int resId)
旧版本?
像这样使用它:
if (Build.VERSION.SDK_INT < 23) {
super.setTextAppearance(context, resId);
} else {
super.setTextAppearance(resId);
}
Run Code Online (Sandbox Code Playgroud)
为什么它被弃用了?为什么它不再需要Context?
它被弃用的原因是没有必要通过context
.它使用由View
.提供的默认上下文.看下面的源代码.那应该解释一下.
public void setTextAppearance(@StyleRes int resId) {
setTextAppearance(mContext, resId);
}
Run Code Online (Sandbox Code Playgroud)
在mContext
这里的定义View
类.所以你不需要再传递给Context
这个方法了.该TextView
会使用在它的创作提供给它的上下文.这更有意义.
UPDATE
此功能作为支持库的一部分添加.所以不要TextView
使用TextViewCompat
[文档].还有其他课程,如ImageViewCompat
.
归档时间: |
|
查看次数: |
22022 次 |
最近记录: |