如何在操作栏选项卡上实现长按

时间:2013-09-10 14:43:54

标签: android android-actionbar android-actionbar-compat

我正在将应用程序源从Tabhost迁移到Fragments和ActionBar。我已经在tabhost上的每个选项卡上实现了长按。

mTabHost.getTabWidget().getChildAt(t).setOnLongClickListener(new OnLongClickListener() {
public boolean onLongClick(View v) {
      //some logic
    }
});

但是,在新设计方面,没有针对操作栏标签的长按点击监听。

有没有解决方法呢?

1 个答案:

答案 0 :(得分:0)

我使用此解决方法帮助方法。长按不能直接设置,但这有效。

基本上它是通过自定义视图获取选项卡视图并在其上设置长按一下监听器。

public static void setTabLongClickListener(Context context, ActionBar.Tab tab, View.OnLongClickListener longClickListener)
    {
        //get previous view to ensure correct state after setting long click listener
        View previousCustomView = tab.getCustomView();

        //some view to get parent tab view
        View view = new View(context);
        tab.setCustomView(view);
        ((View)view.getParent()).setOnLongClickListener(longClickListener);

        //return back removed custom view
        tab.setCustomView(previousCustomView);
    }

在正常的ActionBar上测试,支持AppCompat和ActionBarSherlock。