9
我開始了一個針對Android Lollipop(21)的項目,並創建了一個自定義視圖。當我爲視圖生成構造函數時,我得到了一個新的第四個構造函數,它比其他構造函數更多的參數。爲什麼我們需要第四個構造函數用於棒棒糖?
public class FooView extends FrameLayout {
public FooView(Context context) {
super(context);
}
public FooView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public FooView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
// This 4th constructor
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public FooView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
}
我的問題是,我們爲什麼需要它?如果我刪除此構造函數並在棒棒糖上運行應用程序,會發生什麼情況?
看到https://stackoverflow.com/questions/9195713/do-i-need-all-three-constructors-for-an-android-custom-view –
你不需要它並沒有什麼將會發生,如果你刪除它(見前面的評論)。它存在於默認視圖中,以便您可以傳入默認樣式資源(請參閱下面的answer re:docs)。 – alanv
爲什麼有人想這樣做? – mbonnin