Open yanguv opened 3 years ago
写了个demo测试了下,presentation可以支持的, 需要扩展下,参考skin.support.app.SkinCompatActivity的写法
public class YourPresentation extends Presentation implements SkinObserver { private SkinCompatDelegate mSkinDelegate;
@Override
protected void onCreate(Bundle savedInstanceState) {
LayoutInflaterCompat.setFactory(getLayoutInflater(), getSkinDelegate());
super.onCreate(savedInstanceState);
}
@NonNull
public SkinCompatDelegate getSkinDelegate() {
if (mSkinDelegate == null) {
mSkinDelegate = SkinCompatDelegate.create(getContext());
}
return mSkinDelegate;
}
public YourPresentation(Context outerContext, Display display) {
super(outerContext, display);
}
@Override
protected void onStart() {
super.onStart();
SkinCompatManager.getInstance().addObserver(this);
}
@Override
protected void onStop() {
super.onStop();
SkinCompatManager.getInstance().deleteObserver(this);
}
@Override
public void updateSkin(SkinObservable observable, Object o) {
getSkinDelegate().applySkin();
}
}
Presentation 如何支持换肤