如何在Android

时间:2017-08-16 22:42:33

标签: android android-layout android-menu android-tv android-optionsmenu

how to highlight menu item on selection?

我碰到了这个,这与我的实施非常接近。但是,在我的情况下,差异。当我正在为电视开发并拥有像LEFT / RIGHT?CENTER等控件时。所以我使用LocalBroadcastManager从我的活动中的自定义布局类接收keyEvent。

private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        KeyEvent keyEvent = intent.getParcelableExtra(Constants.KEY_PRESSED_EVENT);
        Log.d(TAG, "Receiver got ketEventCode : " + keyEvent.getKeyCode());
        switch (keyEvent.getKeyCode()) {
            case KeyEvent.KEYCODE_MENU:
                if (!PipLayout.isMenuOpened)
                    openOptionsMenu();
                else
                    closeOptionsMenu();
                break;
            case KeyEvent.KEYCODE_BACK:
                return true;
       }
}

当我说按遥控器上的左键时,我会执行以下操作

menu.getItem(menuItemPosition).getActionView().requestFocus();

是的,可聚焦和focusableOnTouchMode设置为true,但我的光标所在的项目未在UI中突出显示,尽管我有日志显示菜单项位置的更新。

如何突出显示指向它的menuItem?

1 个答案:

答案 0 :(得分:0)

您可能需要查看此documentation,其中讨论了使用Android提供的Drawable State List Resources为焦点和选定控件实现精彩集锦的内容。

尝试使用android:state_activated

  

布尔值。如果在将对象激活为持久选择时(例如,在持久导航视图中“突出显示”先前选择的列表项),则应使用此项;“true”;如果在未激活对象时应使用“false”,则为“false”。

相关问题