我创建了一个继承自FrameLayout的自定义ViewGroup。每当此视图膨胀时,我希望它自动膨胀并添加子视图作为背景视图。我通过以下方式完成了这项工作:
public class CustomViewGroup extends FrameLayout
{
private View background;
public CustomViewGroup(Context context)
{
super(context);
inflateLayout(context);
}
public CustomViewGroup(Context context, AttributeSet attrs)
{
super(context,attrs);
inflateLayout(context);
}
public CustomViewGroup(Context context, AttributeSet attrs, int defStyleAttr)
{
super(context, attrs, defStyleAttr);
inflateLayout(context);
}
private void inflateLayout(Context context)
{
LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
background = layoutInflater.inflate(R.layout.background, this);
}
}
当我在模拟器或设备上运行时,这很好用,但在Eclipse UI预览器中,后台子视图不会被渲染(日志中没有错误)。我宁愿不必使用" android:background"这样就可以在XML中编辑背景视图。
我认为预览器只是不知道子视图,所以它不能绘制它。是否有一些我可以覆盖的功能,以便子视图将显示在预览器中?