我的目标是将隐式样式设置为自定义Android视图。
View类' 3参数构造函数允许提供所需的默认样式资源。
public MyCustomView(Context context, AttributeSet attrs, int defStyle)
{
}
我想默认应用以下样式。
<style name="MyWidgetLibrary.MyCustomView">
<item name="android:padding">10dp</item>
<!-- more items... -->
</style>
但是,defStyle必须是一个属性。事实上,我希望能够通过直接引用一个样式来做到以下几点;不是属性。
public MyCustomView(Context context, AttributeSet attrs)
{
this(context, attrs, R.style.MyWidgetLibrary_MyCustomView);
}
这不起作用。
使用属性引用所需的样式具有以下缺点:必须设置自定义主题,以便可以将属性链接到样式。
如何在不必为应用程序设置自定义主题的情况下将默认样式应用于自定义视图?例如,我想使我的自定义视图可用作库的一部分,并且不要求用户设置不同的主题只是为了应用所需的默认属性。
谢谢!