4

사용자는 EDITTEXT에 텍스트를 입력하려고 할 때 안드로이드 창 관리자 창

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; 

화면

에 보여줍니다 창, 키보드가 나타납니다 볼 수 있지만 EDITTEXT의 상단에 있습니다. 따라서 사용자는 아무 것도 볼 수 없습니다.

실제 문제는 무엇입니까?

+0

귀하의 매니 페스트 파일에 android : windowSoftInputMode = "adjustPan"시도해 보셨습니까 ?? –

+0

@ Maulik.J 서비스에서 WindowManager를 사용하고 있습니다. 연결된 활동이 없습니다. – KDroid

답변

6

문제가 해결되었습니다.

//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; 

내가 대신 WindowManager.LayoutParams.TYPE_PHONE

그리고 WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN

2

는 API에서 19 개 옵션 SOFT_INPUT_ADJUST_PAN 및 유형 TYPE_SYSTEM_ALERTTYPE_TOAST (and TYPE_VOLUME_OVERLAY for API 21 and 22SOFT_INPUT_ADJUST_RESIZEdon't affect 창을 시작으로, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT를 사용하고, API 23 이 목록에서 TYPE_VOLUME_OVERLAY가 삭제되었습니다.)

TYPE_SYSTEM_ALERT 대신에 TYPE_PHONE을 사용해야합니다.