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?
答案 0 :(得分:0)
您可能需要查看此documentation,其中讨论了使用Android提供的Drawable State List Resources为焦点和选定控件实现精彩集锦的内容。
尝试使用android:state_activated
。
布尔值。如果在将对象激活为持久选择时(例如,在持久导航视图中“突出显示”先前选择的列表项),则应使用此项;“true”;如果在未激活对象时应使用“false”,则为“false”。