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

时间:2011-04-16 17:39:24

标签: android

经过很长时间的搜索如何在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开发人员可以帮助我。 THX〜

1 个答案:

答案 0 :(得分:0)

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

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

但是由于Android平台上的错误,我无法让它工作。您可以查看此错误的状态here