prevent TabHost Tab切换? [英] Prevent TabHost Tab Change?
问题描述
有没有办法与股票的Android TabHost至prevent的发生?一个标签的变化
Is there any way with the stock Android TabHost to prevent a tab change from taking place ???
在iOS上,有一个名为shouldSelectViewController上tabBarController,这如果返回FALSE prevents从正在发生的改变标签的委托回调。
In iOS, there is a delegate callback called shouldSelectViewController on the tabBarController, which if you return FALSE prevents the tab change from taking place.
Android拥有onTabChanged()的委托,但是这似乎是一个后 - 事实上通知的标签改变已经发生(它返回void)。
Android has an onTabChanged() delegate, but that appears to be an after-the-fact notification that the tab change has taken place (it returns void).
感谢。
推荐答案
如果你不希望使用onTabChanged()对于这一点,你可以设置OnClickListener / OnTouchListener每个选项卡并执行它。例如:
If you don't want to use onTabChanged() for that, you can set OnClickListener/OnTouchListener for each tab and do it there. Example:
for(int i=0;i<tabWidget.getTabCount();i++)
{
tabWidget.getChildAt(i).setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if(action == MotionEvent.ACTION_UP)
{
String currentTabTag = (String)tabHost.getCurrentTabTag();
String clickedTabTag = (String)v.getTag();
if(clickedTabTag.equals("BAD TAG")
{
return true; // Prevents from clicking
}
}
return false;
}
});
}
这篇关于prevent TabHost Tab切换?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!