我正在使用分離的ActionBar來顯示一些簡單的媒體控件。見下圖:使用MenuItem.setActionView保留ActionBarSherlock中的默認selectableItemBackground
我用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手動的高度,試圖填補動作條
- 返回真或假從onTouch處理器
有誰知道我會如何解決這個問題?
我無法檢查,如果這在我的項目中繼續工作,但感謝解決方案。 – Sudsy