【问题标题】:Add OnLongClickListener on android support TabLayout | TabLayout.Tab在android 上添加OnLongClickListener 支持TabLayout | TabLayout.Tab
【发布时间】:2016-01-26 19:42:37
【问题描述】:

我正在使用服务库中的 TabLayout。长按选项卡时,我尝试添加 OnLongClickListener。这对我来说是不可能的。我什至一直试图通过使用 childViews 来“破解”它:

View tabLayoutChild = tabLayout.getChildAt(0);
    ViewGroup group = (ViewGroup) tabLayoutChild;
    group.getChildAt(0).setOnLongClickListener(this);

不起作用,而且看起来也不漂亮。除了我要实现的 longClick 之外,这一切都非常方便。

我的小sn-p代码

pagerAdapter = new CustomFragmentPagerAdapter(getSupportFragmentManager());
    pagerView.setAdapter(pagerAdapter);
    tabLayout.setupWithViewPager(pagerView);

tablayout 有一个方法 setOnLongClickListener() 但我可以说它什么也没做。

如何为选项卡布局中的选项卡实现 LongClickListener?

【问题讨论】:

    标签: android android-tabs onlongclicklistener android-tablayout


    【解决方案1】:

    你可以的

    mTabLayout.getChildAt(0).setOnLongClickListener
    

    在选项卡主机上设置它,但这意味着它仅在您点击 TabHost 中不包含选项卡(背景?)的空间时触发。

    标签本身驻留在扩展LinearLayoutSlidingTabStrip中,我们可以使用它来访问每个标签。所以我们像这样设置每个标签的长按监听器:

    LinearLayout tabStrip = (LinearLayout) mTabLayout.getChildAt(0);
    for (int i = 0; i < tabStrip.getChildCount(); i++) {
        tabStrip.getChildAt(i).setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                return false;
            }
        });
    }
    

    【讨论】:

    • 如果您的标签布局是动态填充的(标签本身),请确保仅在填充后调用它。
    猜你喜欢
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    相关资源
    最近更新 更多