经过长时间的搜索如何在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的状态