1

独自のdefStyleAttrieも使用するカスタムビューがあります

ビューのデフォルト値を提供するスタイル リソースへの参照を含む、現在のテーマの属性。

このビューをレイアウト ファイルで宣言し、Android Studio 2.2.3 で [プレビュー] をクリックすると、次のエラー メッセージが表示されます。

スタイルがありません。このレイアウトに正しいテーマが選択されていますか?レイアウトの上にある [テーマ] コンボ ボックスを使用して、別のレイアウトを選択するか、テーマ スタイルの参照を修正してください。現在のテーマでスタイル 'myCustomStyleAttr' が見つかりませんでした

私のビューコンストラクターは次のとおりです。

public MyCustomLayout(Context context) {
    this(context, null);
}

public MyCustomLayout(Context context, AttributeSet attrs) {
    this(context, attrs, R.attr.myCustomStyleAttr);
}

public MyCustomLayout(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    init(attrs, defStyleAttr);
}

スタイルが見つからないSO について多くの質問があることは承知しています。エラーが発生しましたが、答えはどれもうまくいきませんでした。それらは主に AppCompat スタイルに関連していたので、解決策を共有したいと思いました。

4

1 に答える 1

1

以下は私のために働いた:

public MyCustomLayout(Context context) {
    this(context, null);
}

public MyCustomLayout(Context context, AttributeSet attrs) {
    super(context, attrs);
    init(attrs, isInEditMode() ? 0 : R.attr.myCustomStyleAttr);
}

public MyCustomLayout(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    init(attrs, defStyleAttr);
}
于 2017-02-27T16:59:00.887 に答える