2017-11-16 13 views
1

recyclerview의 마지막 또는 끝 행을 클릭 할 때를 제외하고는 정상적으로 작동하는 코드를 사용해 보았습니다. popupWindowoffscreen을 엽니 다. recyclerview의 끝 행에 대한보기의 popupWindowupSide을 표시 할 수있는 방법이 있습니까? 여기 내가 사용하고있는 코드입니다 :드롭 다운으로 popupWindow를 표시하는 방법 Recyclerview 행 요소의 onClick?

public void showPopup(View v, int _pos) { 

    LayoutInflater layoutInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View popupView = layoutInflater.inflate(R.layout.popup_row_appointment_option, null); 

    popupWindow = new PopupWindow(
      popupView, 
      ViewGroup.LayoutParams.WRAP_CONTENT, 
      ViewGroup.LayoutParams.WRAP_CONTENT); 

    popupWindow.setBackgroundDrawable(new BitmapDrawable()); 
    popupWindow.setFocusable(true); 
    popupWindow.setOutsideTouchable(true); 
    popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() { 
     @Override 
     public void onDismiss() { 
      //TODO do sth here on dismiss 
     } 
    }); 

    popupWindow.showAsDropDown(v, v.getScrollX(), v.getScrollY()); 

    tv_view_profile = (TextView) popupView.findViewById(R.id.tv_view_profile); 
    tv_view_profile.setOnClickListener(this); 
} 

Here is the screenshot of the problem I am facing. That popupWindow showing off Screen of the device.

+0

은 ** showPopup ** method – Prem

+0

을 호출하는 어댑터 클래스를 공유합니다.이 메서드를 호출하는 위치에서 어댑터의 전체 코드를 추가하십시오. –

+0

어댑터 클래스에서 호출하고 있습니다. 내가 인터페이스를 사용하여 내 활동 클래스에서 해당 행의 특정보기의 클릭 수신기를 트리거합니다. 대신 popupWindow에 대한 코드를 공유 할 수 있으며 아래에 게시됩니다. – ranasaha

답변

0

내가 AnchorView를 받아들이는 PopupMenu에 갈 당신을 제안 -> 그의 사용으로 우리는 우리가 원하는 정확한 위치를 얻을 수 있습니다

https://www.javatpoint.com/android-popup-menu-example : - 팝업을 표시>를보기로 AnchroView를 전달할 수 있습니다 (세 점의 이미지 뷰) 여기

그것의 좋은 예입니다

또한 Appcompat 버전을 사용하여 메뉴에서 재질 터치를 사용하십시오. 당신은 사소한 변경으로 일반 흐름과 함께 갈 수있는 사용자 정의 레이아웃 확인

-

popup.showAtLocation(anchorView, Gravity.BOTTOM, 0, 
       anchorView.getBottom() - 60); 

이 바닥 중력 단지 예입니다. 코드에 따라 중력 및 여백을 설정할 수 있습니다.

anchorView =이 팝업을 표시 할보기입니다. 이 질문을 시도해보고 질문이 있으면 알려주십시오.

+0

제안 해 주셔서 감사합니다.하지만 팝업에서 맞춤 레이아웃을 사용해야합니다. 그래서 popupMenu를 사용하면 자신 만의 레이아웃을 사용할 수 없으며 menu.xml을 사용해야 만합니다. 팝업 창에서 popupWindow를 사용하여 사용자 정의 레이아웃을 확장해야합니다. popupWindow를 사용하여 그것을 도와 줄 수 있습니까? 또는 맞춤형 팝업을 표시하는 다른 방법이 있습니까? 필자의 경우에는 menu.xml이 작동하지 않기 때문에 나는 추측한다. – ranasaha

+0

수정 된 답변을 다시 확인하고 의심스러운 점이 있으면 알려주십시오. –

+0

죄송합니다, 잘 작동하지 않습니다. 나는 전에 이것을 시도했다. 내가 원하는 방식대로 작동하지 않습니다. 사용 : – ranasaha