我正在使用拆分 ActionBar 来显示一些简单的媒体控件。见下文:
我使用 MenuItem.setActionView 来覆盖快进和倒带按钮的默认视图,因为我需要检测用户何时最初触摸控件(开始倒带)并随后释放控件(完成倒带)。请参见下面的代码:
ImageView rewindButton = new ImageView(getBaseContext());
rewindButton.setId(rewindViewID);
rewindButton.setClickable(true);
rewindButton.setImageResource(R.drawable.ic_action_rewind);
rewindButton.setOnTouchListener(forwardBackwardListener);
MenuItem rewindMenu = menu.findItem(R.id.menu_rewind);
rewindMenu.setActionView(rewindButton);
return true;
这对我来说一切都很好,但产生了意想不到的副作用。当我触摸快进或快退按钮时,我没有获得默认的蓝色背景(如上面的向后跳过控件所示)。它根本不显示背景。我尝试在 onTouch 处理程序中设置背景,但背景不会以与默认方式相同的方式填充 ActionBar 的高度(参见下面的示例图),似乎有一些填充或边距,但我没有不知道怎么去掉。
我试过以下没有运气:
- 手动设置 ImageView 的高度以尝试填充 ActionBar
- 从 onTouch 处理程序返回 True 或 False
有谁知道我该如何解决这个问题?