我希望有一个自定义的ViewPager,并根据与ViewPager的交互增加了具有特定行为的其他视图。
我实现了我想要的所有内容,为包含ViewPager和所有其他视图的主布局添加了视图。然后将逻辑添加到现有的ViewPager,添加自定义侦听器等...
它的工作原理但......丑陋 - 负责管理viewpager行为的代码是"泄露"到包含ViewPager和其他视图的布局的活动(没有封装)和更严重的问题 - 这绝对不是可重用的。
所以我想扩展ViewPager并将所有额外的视图和逻辑添加到ViewPager本身,并使其成为一个封装的,可重用的组件。 ViewPager扩展了ViewGroup,所以我想我会添加我想要的视图并且全部设置 - 但是一旦我添加了视图 - 它们就不会出现,我也不知道为什么。
这是我尝试的代码(忽略类的名称)
public class ClickableViewPager extends ViewPager {
/**
* @param context
*/
public ClickableViewPager(Context context) {
super(context);
this.initViews(context);
}
/**
* @param context
* @param attrs
*/
public ClickableViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.initViews(context);
}
private void initViews(Context context) {
ImageView iv = new ImageView(context);
iv.setImageResource(R.drawable.logo);
TextView tv = new TextView(context);
tv.setText("BLAH");
this.addView(tv);
this.addView(iv);
}