包含自定义视图递归的CustomView

时间:2014-02-06 13:09:36

标签: android android-layout recursion out-of-memory android-custom-view

我创建了一个自定义视图(PlayListFragment)。该组件扩展了RelativeLayout,包含1个imageView和1个VideoView。我模拟播放列表功能。

除了ImageView和VideoView之外,我想在自定义视图(PlayListFragment)中添加一个新视图。但是这个新视图包含一个PlayListFragment。所以我想在“播放列表”中找到一个“播放列表”。

我创建了一个包含PlayListFragment的新自定义视图(TemplateView)。

public class TemplateView extends RelativeLayout {

Context context;
LayoutInflater inflater;
PlayListFragment p1;
PlayListFragment p2;

public TemplateView(Context context) {
    super(context);
    this.context = context;
    inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}


 public void setTemplate(TemplateItem template) {

    this.removeAllViews();

    if("1".equals(template.getType())) {
        this.addView(inflater.inflate(R.layout.template_1, null));
        p1= (PlayListFragment)findViewById(R.id.template1_playListFragment_left);
        p1.setPlayList(template.getItems().get("p1"));
        p1.play();

    }else if("2".equals(template.getType())) {
        this.addView(inflater.inflate(R.layout.template_2, null));
        p2= (PlayListFragment)findViewById(R.id.template1_playListFragment_top);
        p2.setPlayList(template.getItems().get("p2"));
        p2.play();
    }

}

没有新视图TemplateView的PlayListFragment工作正常,但是当我添加TemplateView时,一切都很疯狂,我得到了内存泄漏。

任何想法我可能做错了什么或可以优化什么?

谢谢!

0 个答案:

没有答案