Android:ViewPager为页卡内视图组件添加事件

在数据适配器PagerAdapter的初始化方法中添加按钮事件,这里是关键,首先判断当前的页卡编号。必须使用当前的view来获取按钮。

@Override
        public Object instantiateItem(View arg0, int arg1) {
            if (arg1 < 3) {
                ((ViewPager) arg0).addView(mListViews.get(arg1 % 3), 0);
            }
            // 测试页卡1内的按钮事件
            if (arg1 == 0) {
                Button btn = (Button) arg0.findViewById(R.id.btn);
                btn.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        new AlertDialog.Builder(MainActivity.this)
                                .setTitle("说明")
                                .setMessage("单个页卡内按钮事件测试")
                                .setNegativeButton("确定",
                                        new DialogInterface.OnClickListener() {
                                            @Override
                                            public void onClick(
                                                    DialogInterface dialog,
                                                    int which) {
                                            }
                                        }).show();
                    }
                });
            }
            return mListViews.get(arg1 % 3);
        }


如果不在这里面添加事件,那么在viewpager的视图经过切换后,原有的视图里组件事件将丢失。

viewpager.setOffscreenPageLimit(int num)可以设置预先加载的页面个数。因为每个页面都有若干个子页面,如果不预先把7个页面全加载完,那么在滑动几次后将丢失之前页面的一些子页面显示状态

另外,需要注意的是在ViewPager中,它除了加载当前页,还会加载当前页的左右页(无论它们实际可不可见)。除了当前页的View算是可见的,其左右页的View算是可见的(无论它们实际可不可见),即onWindowVisibilityChanged(int visibility)中的参数是View.VISIBLE。

转载于:https://www.cnblogs.com/njflash/articles/3045231.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值