【问题标题】:How to detect a click on every single tab in tablayout?如何检测对tablayout中每个选项卡的点击?
【发布时间】:2017-04-20 22:17:53
【问题描述】:

我有一个带有未确定页面的 viewpager,因为用户也可以添加页面。没关系,但我不知道如何使我的用户可以删除这些页面。我尝试使用下面的代码在每个选项卡上实现长点击监听器,但它不起作用。

那么如何检测点击了哪一个标签呢?

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;
            }
        });
    }

【问题讨论】:

    标签: android android-viewpager android-tablayout


    【解决方案1】:

    为每个TAB 实现LongClick 监听器:

    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;
            }
        });
    }
    

    希望对你有帮助~

    【讨论】:

    • 我使用了相同的代码并且工作正常。当我将长按应用于任何选项卡时显示“已单击选项卡”
    • 那是我的错,该调试了。谢谢你的回答:)
    猜你喜欢
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 2012-11-27
    • 2017-05-19
    • 2017-02-08
    • 1970-01-01
    • 2019-12-02
    • 2018-03-22
    相关资源
    最近更新 更多