wow well, i guess i solved my own problem. instead of overriding the tabhost's implementation of dispatchkeyevent, i implemented my logic in my extension of tab activity and it works!
On Jan 12, 12:55 pm, RLo <leecha...@gmail.com> wrote: > Hi All, > > I have a tabhost with the tabwidget on the bottom (not hard to do, > just put the tabcontent above the tabs in the tab xml). However, I > noticed the order of focus is off (since the tabhost is hardcoded to > be on the top). I'd like to change 2 things in how the tabhost > handles focus order: > > 1. change the tabwidget's position in the focus order (to be on > bottom, not top) > 2. allow left and right focus commands to change the tabs from > anywhere (not just when the tabwidget is focused) > > For #2 above, see HTC's sense toolbars for an example (built into the > hero, such as the albums or people native apps). > > I think I can achieve both of these by overriding tabhost's > dispatchKeyEvent (code at bottom), I would just change the current > implementation to handle KEYCODE_DPAD_DOWN instead of KEYCODE_DPAD_UP, > and then add in left and right detection as well. > > How can I override JUST this method in the tabhost implementation? > I'm not a Java pro, so this could be relatively simple and I'm just > clueless how to do it :) > > Thanks much! > > -------------------------------------------------------------------------------------- > @Override > public boolean dispatchKeyEvent(KeyEvent event) { > final boolean handled = super.dispatchKeyEvent(event); > > // unhandled key ups change focus to tab indicator for > embedded activities > // when there is nothing that will take focus from default > focus searching > if (!handled > && (event.getAction() == KeyEvent.ACTION_DOWN) > && (event.getKeyCode() == KeyEvent.KEYCODE_DPAD_UP) > && (mCurrentView.isRootNamespace()) > && (mCurrentView.hasFocus()) > && (mCurrentView.findFocus().focusSearch > (View.FOCUS_UP) == null)) { > mTabWidget.getChildAt(mCurrentTab).requestFocus(); > playSoundEffect(SoundEffectConstants.NAVIGATION_UP); > return true; > } > return handled; > }
-- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en