0

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

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

但是,当涉及到新设计时,操作栏选项卡没有这样的长点击监听器。

有什么解决方法吗?

4

1 回答 1

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。

于 2013-12-08T22:28:11.243 回答