我有一个 TabHost 控件(不在操作栏中),并且我想让选项卡在用户滑动每个选项卡上的上下文(类似于 Whatsapp 表情符号选项卡)时进行更改。
我怎样才能做到这一点?
EDIT
手感也很重要。我希望上下文应该有滚动动画(无论用户是否滑动或单击选项卡)。
您可以重写 onTouchEvent:
@Override
public boolean onTouchEvent(MotionEvent touchevent) {
switch (touchevent.getAction()) {
// when user first touches the screen to swap
case MotionEvent.ACTION_DOWN: {
lastX = touchevent.getX();
break;
}
case MotionEvent.ACTION_UP: {
float currentX = touchevent.getX();
// if left to right swipe on screen
if (lastX < currentX) {
switchTabs(false);
}
// if right to left swipe on screen
if (lastX > currentX) {
switchTabs(true);
}
break;
}
}
return false;
}
切换选项卡方法:
public void switchTabs(boolean direction) {
if (direction) // true = move left
{
if (tabHost.getCurrentTab() == 0)
tabHost.setCurrentTab(tabHost.getTabWidget().getTabCount() - 1);
else
tabHost.setCurrentTab(tabHost.getCurrentTab() - 1);
} else
// move right
{
if (tabHost.getCurrentTab() != (tabHost.getTabWidget()
.getTabCount() - 1))
tabHost.setCurrentTab(tabHost.getCurrentTab() + 1);
else
tabHost.setCurrentTab(0);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)