いくつかの単純なメディア コントロールを表示するために分割 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 を返す
これを解決する方法を知っている人はいますか?