如何检测在TabLayout中每个单个选项卡上的单击? [英] How to detect a click on every single tab in tablayout?

查看:293
本文介绍了如何检测在TabLayout中每个单个选项卡上的单击?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Viewpager,它的页面不确定,因为用户也可以添加页面.可以,但是我不知道如何使我的用户删除这些页面.我尝试使用下面的代码在每个选项卡上实现长按监听器,但是它不起作用.

I have a viewpager with undetermined pages, because the user can add pages too. Thats okay, but I have no idea how to make it possible, that my user could delete those pages. I have tried to implement a long click listener on every tab with the code below, but it is not working.

然后如何检测单击了哪个选项卡?

Then how to detect which one tab is clicked?

for (tabCounter = 0; tabCounter < DataOfPages.size(); tabCounter++) {
        tabLayout.getTabAt(tabCounter).setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                dataSource.open();
                dataSource.deleteById(tabCounter);
                dataSource.close();

                setupViewPager(viewPager);
                return true;
            }
        });
    }

推荐答案

每个TABLongClick侦听器的实现:

Implementation of LongClick listener to each TAB:

LinearLayout tabStrip = (LinearLayout) tabLayout.getChildAt(0);

for (int i = 0; i < tabStrip.getChildCount(); i++) {

    // Set LongClick listener to each Tab        
    tabStrip.getChildAt(i).setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {

            Toast.makeText(getApplicationContext(), "Tab clicked" , Toast.LENGTH_SHORT).show();
            return true;
        }
    });
}

希望这会有所帮助〜

这篇关于如何检测在TabLayout中每个单个选项卡上的单击?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆