2016-03-30 9 views
2

私は下のウィンドウビューを持っています。そして、私が任意のエディットテキストをクリックすると、キーボードは開きますが、ウィンドウビュー(Windowviewはキーボード上にあります)の下に開きます。 adjustPan、adjustResizeを使用して試行します。 キーボードの可視性に応じて表示を非表示にしますが、セキュリティ例外が発生します。キーボードから来るウィンドウビューを避けるには?

mTabParams = new WindowManager.LayoutParams(
       ViewGroup.LayoutParams.MATCH_PARENT, 
       ViewGroup.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT | 
       WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, 
       WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | 
         WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
       PixelFormat.TRANSPARENT); 

     mTabParams.format = PixelFormat.TRANSLUCENT; 
     mTabParams.height = TAB_BAR_HEIGHT; 
     mTabParams.gravity = Gravity.BOTTOM; 
     mWindowmanager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); 
     mWindowmanager.addView(mTabbarLayout, mTabParams); 
+0

'int \t TYPE_SYSTEM_OVERLAY \tウィンドウタイプ:システムオーバーレイウィンドウ。他のものの上に表示する必要があります。'そのフラグを削除して、役立つかどうか確認してください。 –

答えて

0

これは私の仕事:

params = new WindowManager.LayoutParams( 
    WindowManager.LayoutParams.WRAP_CONTENT, 
    WindowManager.LayoutParams.WRAP_CONTENT, 
    WindowManager.LayoutParams.TYPE_PRIORITY_PHONE, 
    WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | 
    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | 
    WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | 
    WindowManager.LayoutParams.FLAG_SPLIT_TOUCH | 
    WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, 
    PixelFormat.TRANSLUCENT); 

をこれはキーボードの後ろに追加したビューを置きます。

関連する問題