12

カスタムボタンのデフォルトの背景をnullに設定するにはどうすればよいですか。

つまり...android:backgroundを「@null」に設定する「スタイル」を定義し、ユーザーにレイアウトにスタイルを明示的に適用するように依頼できることはわかっています。例えば:

<style name="MyButton" parent="@android:style/Widget.Button">
    <item name="android:background">@null</item>
</style>

<com.xxx.widget.MyButton
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/MyButton"
    android:text="MyButton" />

上記のコードはうまく機能しています。しかし、このスタイルをクラス「MyButton」に内部的に適用し、ユーザーがスタイルを明示的に設定しないようにするにはどうすればよいですか?

たとえば、次のレイアウトを作成する方法は以前と同じように機能します。

<com.xxx.widget.MyButton
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="MyButton" />

以下のようにコンストラクターでこれを実行しようとしましたが、機能しません。

public MyButton(Context context, AttributeSet attrs) {
    this(context, attrs, com.xxx.R.style.MyButton);
}

PS。ユーザーが背景を明示的に設定していない場合に、この「null」背景を適用したいと思います。

4

3 に答える 3

2

MyButton() コンストラクターで setBackground(null) を呼び出さないのはなぜですか?

于 2013-07-02T18:01:32.647 に答える