关于tablayout的tab点击事件

在做项目的过程中,使用tablayout+viewpager实现页卡的切换,但是有个需求是点击其中的一个tab,能够弹出显示一个popupwindow,而且不影响tablayout+viewpager的联动。

这里只贴出关键代码,参考了阳春面博客的方法。

重新设置点击事件

for (int i = 0; i < tablayout.getTabCount(); i++) {
    TabLayout.Tabtab=tablayout.getTabAt(i);
    if (tab!=null){
    tab.setCustomView(tabPager.getTabView(i));
    if (tab.getCustomView()!=null){
        View tabView=  (View)tab.getCustomView().getParent();
          tabView.setTag(i);
tabView.setOnClickListener(mTabOnClickListener);
                                }
                }
        }

处理点击事件

private View.OnClickListener mTabOnClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int position= (int) v.getTag();
            if (position==0 &&tablayout.getTabAt(position).isSelected()==true){
                Toast.makeText(mActivity, "点击了第一个tab", Toast.LENGTH_SHORT).show();
            }else if (position==1 && tablayout.getTabAt(position).isSelected()==true){
                Toast.makeText(mActivity, "点击了第二个tab", Toast.LENGTH_SHORT).show();
            }else {
                TabLayout.Tab tab = tablayout.getTabAt(position);
                if (tab != null) {
                    tab.select();
                }
            }
        }
    };
实现这个需求的关键地方在于判断tab位置的同时,判断tab是否选中状态,是选中状态,才可以点击让popupwindow显示。
效果图以后补。。。
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值