Example usage for android.view View setNextFocusRightId

List of usage examples for android.view View setNextFocusRightId

Introduction

In this page you can find the example usage for android.view View setNextFocusRightId.

Prototype

public void setNextFocusRightId(int nextFocusRightId) 

Source Link

Document

Sets the id of the view to use when the next focus is #FOCUS_RIGHT .

Usage

From source file:org.videolan.vlc.gui.MyFragment.java

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override//w w  w  .  j  a  va 2s  .c  om
public boolean onKeyUp(int keyCode, KeyEvent event) {
    //Filter for LG devices, see https://code.google.com/p/android/issues/detail?id=78154
    if ((keyCode == KeyEvent.KEYCODE_MENU) && (Build.VERSION.SDK_INT <= 16)
            && (Build.MANUFACTURER.compareTo("LGE") == 0)) {
        openOptionsMenu();
        return true;
    }
    View v = getCurrentFocus();
    if (v == null)
        return super.onKeyUp(keyCode, event);
    if ((mActionBarIconId == -1) && (v.getId() == -1) && (v.getNextFocusDownId() == -1)
            && (v.getNextFocusUpId() == -1) && (v.getNextFocusLeftId() == -1)
            && (v.getNextFocusRightId() == -1)) {
        mActionBarIconId = Util.generateViewId();
        v.setId(mActionBarIconId);
        v.setNextFocusUpId(mActionBarIconId);
        v.setNextFocusDownId(mActionBarIconId);
        v.setNextFocusLeftId(mActionBarIconId);
        v.setNextFocusRightId(R.id.ml_menu_search);
        if (AndroidUtil.isHoneycombOrLater())
            v.setNextFocusForwardId(mActionBarIconId);
        if (findViewById(R.id.ml_menu_search) != null)
            findViewById(R.id.ml_menu_search).setNextFocusLeftId(mActionBarIconId);
    }
    return super.onKeyUp(keyCode, event);
}

From source file:com.eleybourn.bookcatalogue.utils.Utils.java

/**
 * Ensure that next up/down/left/right View is visible for all sub-views of the 
 * passed view.//from w ww.j  av a2 s .  c o  m
 * 
 * @param root
 */
public static void fixFocusSettings(View root) {
    final INextView getDown = new INextView() {
        @Override
        public int getNext(View v) {
            return v.getNextFocusDownId();
        }

        @Override
        public void setNext(View v, int id) {
            v.setNextFocusDownId(id);
        }
    };
    final INextView getUp = new INextView() {
        @Override
        public int getNext(View v) {
            return v.getNextFocusUpId();
        }

        @Override
        public void setNext(View v, int id) {
            v.setNextFocusUpId(id);
        }
    };
    final INextView getLeft = new INextView() {
        @Override
        public int getNext(View v) {
            return v.getNextFocusLeftId();
        }

        @Override
        public void setNext(View v, int id) {
            v.setNextFocusLeftId(id);
        }
    };
    final INextView getRight = new INextView() {
        @Override
        public int getNext(View v) {
            return v.getNextFocusRightId();
        }

        @Override
        public void setNext(View v, int id) {
            v.setNextFocusRightId(id);
        }
    };

    Hashtable<Integer, View> vh = getViews(root);

    for (Entry<Integer, View> ve : vh.entrySet()) {
        final View v = ve.getValue();
        if (v.getVisibility() == View.VISIBLE) {
            fixNextView(vh, v, getDown);
            fixNextView(vh, v, getUp);
            fixNextView(vh, v, getLeft);
            fixNextView(vh, v, getRight);
        }
    }
}

From source file:org.brandroid.openmanager.activities.OpenExplorer.java

public void setupBaseBarButtons(Menu menu, boolean flush) {
    if (flush)/*from  w w  w  .ja  v  a2 s. c  o m*/
        mLastMenuClass = "";
    TableLayout mBaseBar = (TableLayout) findViewById(R.id.base_bar);
    mToolbarButtons = (ViewGroup) findViewById(R.id.base_row);
    mStaticButtons = (ViewGroup) findViewById(R.id.title_static_buttons);
    OpenFragment f = getSelectedFragment();
    boolean topButtons = false;
    if (!getResources().getBoolean(R.bool.allow_split_actionbar)
            || !(getSetting(null, "pref_basebar", true) || mBaseBar == null || mToolbarButtons == null)
                    && findViewById(R.id.title_buttons) != null) {
        mToolbarButtons = (ViewGroup) findViewById(R.id.title_buttons);
        if (mToolbarButtons == null && !BEFORE_HONEYCOMB)
            mToolbarButtons = (ViewGroup) getActionBar().getCustomView().findViewById(R.id.title_buttons);
        if (mBaseBar != null)
            mBaseBar.setVisibility(View.GONE);
        topButtons = true;
    }
    if (!shouldFlushMenu(menu))
        return;
    USE_SPLIT_ACTION_BAR = !topButtons;
    if (mToolbarButtons != null) {
        mToolbarButtons.removeAllViews();
        //if(!topButtons) mToolbarButtons.measure(LayoutParams.MATCH_PARENT, getResources().getDimensionPixelSize(R.dimen.actionbar_compat_height));

        int i = -1;
        int btnWidth = getResources().getDimensionPixelSize(R.dimen.actionbar_compat_button_width)
                + (getResources().getDimensionPixelSize(R.dimen.vpi_padding_horizontal) * 2); // (int)(16 * getResources().getDimension(R.dimen.one_dp));
        int tblWidth = mToolbarButtons.getWidth();
        if (tblWidth <= 0 && !topButtons)
            tblWidth = getWindowWidth();
        if (topButtons || tblWidth <= 0 || tblWidth > getWindowWidth()
                || !getResources().getBoolean(R.bool.ignore_max_base_buttons))
            tblWidth = btnWidth * getResources().getInteger(R.integer.max_base_buttons);
        ArrayList<View> buttons = new ArrayList<View>();
        buttons.addAll(ViewUtils.findChildByClass(mToolbarButtons, ImageButton.class));
        boolean maxedOut = false;
        while (++i < menu.size()) {
            if (buttons.size() * btnWidth >= tblWidth) {
                maxedOut = true;
                Logger.LogDebug("Base bar full after #" + i + " ~ " + buttons.size() + " ("
                        + (buttons.size() * btnWidth) + ">" + tblWidth + ")!");
                break;
            } else if (menu.getItem(i) instanceof MenuItemImpl) {
                final MenuItemImpl item = (MenuItemImpl) menu.getItem(i);
                //if(item.getItemId() == R.id.title_menu) break;
                if (!item.isCheckable() && item.isVisible()) {
                    View btn = makeMenuButton(item, mToolbarButtons);
                    if (item.hasSubMenu())
                        btn.setTag(item.getSubMenu());
                    else if (!BEFORE_HONEYCOMB && item.getActionView() != null) {
                        if (DEBUG)
                            Logger.LogDebug("ACTION VIEW!!!");
                        btn = item.getActionView();
                        //ActionBarHelper h = ActionBarHelper.createInstance(this);
                    }
                    buttons.add(btn);
                    if (i > 0)
                        btn.setNextFocusLeftId(menu.getItem(i - 1).getItemId());
                    if (i < menu.size() - 1)
                        btn.setNextFocusRightId(menu.getItem(i + 1).getItemId());
                    if (!USE_PRETTY_MENUS || topButtons)
                        btn.setOnCreateContextMenuListener(this);
                    menu.getItem(i).setVisible(false);
                    btn.setOnClickListener(this);
                    btn.setOnFocusChangeListener(this);
                    btn.setOnKeyListener(this);
                    if (mToolbarButtons.findViewById(menu.getItem(i).getItemId()) == null)
                        mToolbarButtons.addView(btn);
                    //menu.removeItem(item.getItemId());
                    if (DEBUG)
                        Logger.LogDebug("Added " + item.getTitle() + " to base bar.");
                }
                //else Logger.LogWarning(item.getTitle() + " should not show. " + item.getShowAsAction() + " :: " + item.getFlags());
            }
        }
        mToolbarButtons.setVisibility(View.VISIBLE);
        mLastMenuClass = f.getClassName();
        if (MenuUtils.countVisibleMenus(mMainMenu) > 0) {
            if (maxedOut && buttons.size() > 0) {
                View old = buttons.remove(buttons.size() - 1);
                MenuUtils.setMenuVisible(mMainMenu, true, old.getId());
                mToolbarButtons.removeView(old);
            }
            final ImageButton btn = (ImageButton) getLayoutInflater().inflate(R.layout.toolbar_button,
                    mToolbarButtons);
            btn.setImageResource(R.drawable.ic_menu_more);
            //btn.measure(getResources().getDimensionPixelSize(R.dimen.actionbar_compat_button_home_width), getResources().getDimensionPixelSize(R.dimen.actionbar_compat_height));
            btn.setId(R.id.menu_more);
            if (buttons.size() > 0) {
                buttons.get(buttons.size() - 1).setNextFocusRightId(R.id.menu_more);
                btn.setNextFocusLeftId(buttons.get(buttons.size() - 1).getId());
            }
            btn.setOnKeyListener(this);
            btn.setOnClickListener(this);
            btn.setOnLongClickListener(this);
            btn.setFocusable(true);
            btn.setOnFocusChangeListener(this);
            buttons.add(btn);
            mToolbarButtons.addView(btn);
        }
        if (buttons.size() > 0) {
            View last = buttons.get(buttons.size() - 1);
            last.setNextFocusRightId(android.R.id.home);
            if (findViewById(android.R.id.home) != null)
                findViewById(android.R.id.home).setNextFocusLeftId(last.getId());
        }

        Logger.LogDebug("Added " + buttons.size() + " children to Base Bar.");
        if (mBaseBar != null) {
            if (buttons.size() < 1)
                mBaseBar.setVisibility(View.GONE);
            else
                mBaseBar.setStretchAllColumns(true);
        }
    } else if (BEFORE_HONEYCOMB)
        Logger.LogWarning("No Base Row!?");
}