3

タッチ時にオーバーレイとして持っている上部のアクションバーを非表示にしてから、別のタッチで再度表示したいと考えています。どういうわけか、おそらく onTouchListener を何かに追加する必要がありますが、どうすればよいですか? イベントは、他のハンドラーによって消費されない場合にのみ処理する必要があるため、スライドして画像などを変更してもマルチタッチが機能します。ありがとうございます。

4

1 に答える 1

6

このようなものは機能するはずです(テストされていないコード-だから、塩の粒で取ります)

基本的には、onTouch をオーバーライドし、機能を失わないようにそのスーパー メソッドを呼び出します。消費されているかどうかを確認し、そうでない場合はトグルまたはアクションバーの表示/非表示を切り替えます。

Boolean showBar = true; // Global variable

@Override
public boolean onTouch(View v, MotionEvent event) {
   Boolean result = super.onTouch(v,event);

   if(!result) // False - Not consumed event.
   {
       if(showBar) // Toggle action bar visiblity
          getActionBar().hide();
       else
          getActionBar().show();

       showBar = !showBar;
   }
   return result;   
}
于 2012-08-18T21:23:45.573 に答える