为自定义复合组件设置样式



经过长时间的搜索如何在android中创建自定义复合组件,我得到了以下代码:

public class MyCustomView extends RelativeLayout {
    ...
    LayoutInflater inflater = (LayoutInflater) 
        context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    inflater.inflate(R.layout.my_custom_view, this, true);
}

为了避免双重RelativeLayout,我必须在my_custom_view.xml中使用merge:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"> 
    ...
</merge>

但是我不能在merge标签中指定样式,我如何使用styles.xml中定义的样式为MyCustomView设置样式?这个要求似乎很常见,但即使在网上花了很长时间,我也找不到答案。希望一些有经验的android开发人员可以帮助我。谢谢~

通常,您应该能够在类的构造函数中设置所需的样式:

super(context,attrs,R.style.MyCustomView);

但是我也不能让这个工作,因为android平台的一个bug。你可以在这里查看这个bug的状态

最新更新