2014-07-10 38 views
0

當我點擊一個Android按鈕時,顯示Android的軟件密鑰(隱藏之前),而不是點擊我點擊的實際按鈕的onClick()方法。不傳播點擊

我對顯示或隱藏系統UI兩種方法:

1.

// Set up the user interaction to manually show or hide the system UI. 
    contentView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if (TOGGLE_ON_CLICK) { 
       mSystemUiHider.toggle(); 
      } else { 
       mSystemUiHider.show(); 
      } 
     } 
    }); 

和2:

/** 
* Touch listener to use for in-layout UI controls to delay hiding the 
* system UI. This is to prevent the jarring behavior of controls going away 
* while interacting with activity UI. 
*/ 
View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View view, MotionEvent motionEvent) { 
     if (AUTO_HIDE) { 
      delayedHide(AUTO_HIDE_DELAY_MILLIS); 
     } 
     return false; 
    } 
}; 

我也有另一種方法,其中一個開關來獲得按鈕上的onClick()事件

public void onClick(View v) { switch() { } } 

是否有可能修復這種行爲,當我點擊實際的按鈕將被解僱,系統界面會顯示?

回答

1

除非您在同一視圖中同時觸摸偵聽器和點擊偵聽器,否則沒有解決方法可以解決此問題。嘗試使用

View.SYSTEM_UI_FLAG_LOW_PROFILE|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY 

改爲。在setcontentview()方法之前添加以下代碼。

View decorView = getWindow().getDecorView(); 
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; 
decorView.setSystemUiVisibility(uiOptions);  
+0

我試着評論前2個片段,並在第三個剪輯中插入方法的內容,但我仍然得到相同的行爲。我應該在哪裏粘貼你粘貼的代碼? – glarkou

+0

已更新的回答。現在檢查 – intrepidkarthi

+0

謝謝,現在至少它更好。 – glarkou