请告诉我,如何将自定义按钮的默认背景设置为空。
我的意思是...... 我知道我可以定义一个“样式”,它将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”背景 明确。
答案 0 :(得分:0)
在MyButton()构造函数中,为什么不调用setBackground(null)?
答案 1 :(得分:0)
这或多或少是一种廉价的方法,但为什么不将背景设置为透明方块。像这样 - &gt;
transparent_square.xml :(将其放在drawable目录中)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/square"
android:>
<solid android:color="#00808080"></solid> // The first two zeros set the alpha
// to 0
</shape>
然后将按钮的背景设置为可绘制的。
按钮:强>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Send"
android:id="@+id/sendButton"
android:layout_weight="1"
android:background="@drawable/transparent_square"/>