首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PagerSlidingTabStrip和onTabUnselect

PagerSlidingTabStrip和onTabUnselect
EN

Stack Overflow用户
提问于 2014-08-25 15:36:42
回答 1查看 424关注 0票数 0

我使用PagerSlidingTabStrip

https://github.com/astuetz/PagerSlidingTabStrip/blob/master/library/src/com/astuetz/PagerSlidingTabStrip.java

我正在实现一个应用程序,当用户选择一个选项卡时,我会向服务器发送一个与该选项卡相对应的请求。当用户选择其他选项卡时,我希望取消这些请求。例如,我的意思是用户选择tab1,现在我请求服务器名为req1,当用户选择选项卡2时,我想取消req1并将req2发送到服务器。在操作栏的选项卡实现中,有一个回调方法调用onTabUnselected,我想实现它并将它集成到那个库中,但是我找不到必须调用该方法的位置。有谁可以帮我?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-25 19:55:51

PagerSlidingTabStrip与与ActionBar afaik相关的Tabs无关,因此在PagerSlidingTabStrip中取消选择选项卡时不会调用onTabUnselected。另外,与Tabs相关的ActionBar在Android中也不受欢迎。

我建议您创建一个新变量来跟踪上一个选定的选项卡(在选项卡上使用OnClickListener时)(参见PagerSlidingTabStrip类中的第251行)。

一些(未经测试)代码的示例:

代码语言:javascript
复制
int lastClickedTabPosition;

// This method should be called from the OnClickListener of the tabs.
private void saveClickedPositionAndCancelLastRequest(int clickedPosition) {
    // Cancel your last request here by using the lastClickedTabPosition to get the last clicked position if you have more requests sent to the server.
    // Afterwards set lastClickedTabPosition with the new clicked position:
    this.lastClickedTabPosition = clickedPosition;
}

这个变量可以保存最后一个已知的单击选项卡位置。每当您单击一个新选项卡时,只需得到最后单击的选项卡的位置,然后取消最后一个请求发送。

顺便提一句:谷歌已经创建了自己的PagerSlidingTabStrip实现SlidingTabLayout,并在这里开放了它:https://developer.android.com/samples/SlidingTabsBasic/src/com.example.android.common/view/SlidingTabLayout.html,这可能更容易使用,特别是在未来获得帮助:)

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25489470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档