我创建了一个自定义视图(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时,一切都很疯狂,我得到了内存泄漏。
任何想法我可能做错了什么或可以优化什么?
谢谢!