使用其他视图自定义android ViewPager - 作为组件

时间:2014-11-16 23:58:52

标签: android android-viewpager android-support-library android-navigation

我希望有一个自定义的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);
}

0 个答案:

没有答案