1

how to highlight menu item on selection?如何突出在Android的

自定义菜单项的onfocus状态,我碰上这是非常接近我的实现。但是,在我的情况下,差异。由于我正在为电视开发,并且拥有像左/右?中心等控件,因此我使用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; 
     } 
} 

当我有说我的遥控器上按LEFT键我做了以下

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

而且是可聚焦和focusableOnTouchMode设置为true,但在这我的光标在没有突出显示的项目UI虽然我有日志显示菜单项位置的更新。

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

回答

0

您可能想要检查这个documentation,其中讨论了使用Android提供的Drawable State List Resources来实现重点和选定控件的高亮部分。

尝试使用android:state_activated

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

+0

@Teyram感谢分享。但是我选择实施一个自定义菜单,因为在我的情况下它更可行,但我希望其他人从中受益。 –