键盘可见后,Android WindowManager窗口不会重新定位

KDr*_*oid 3 android window-managers android-service android-windowmanager

屏幕上显示的窗口

public class FlatingViewService extends Service{
      public static WindowManager windowManager;
              ...

    windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
     ...

    //Floating View Layout
   li = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);

   myView = li.inflate(R.layout.product_response_card, null);

  name =  (TextView) myView.findViewById(R.id.name);

  editTextName = (TextView) myView.findViewById(R.id.editTextName);
    ...

    //Layout Parameters
    ...
   response_card_params.softInputMode =  WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE;
Run Code Online (Sandbox Code Playgroud)

当用户尝试在editText中输入一些文本时,键盘会出现在editText的顶部.所以用户看不到任何东西.

什么是实际问题?

KDr*_*oid 5

问题解决了.

//Layout Parameters for Product response card
        layout_params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_PHONE,
                WindowManager.LayoutParams.FLAG_DIM_BEHIND,
                PixelFormat.TRANSLUCENT);
        layout_params.gravity = Gravity.LEFT;
        layout_params.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN;
Run Code Online (Sandbox Code Playgroud)

我正在使用WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,而不是WindowManager.LayoutParams.TYPE_PHONE

和WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN