Android,위 챗 모멘트 댓 글 편집 텍스트 효과 구현

본 고 는 주로 위 챗 모멘트 평론 EditText 효과 방향 을 설명 하고 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
효과 도

우리 가 어느 날 친구 권 의 댓 글 을 클릭 하면 목록 도 미 끄 러 지면 서 키보드 가 우리 가 클릭 한 댓 글 위 에 딱 있다 는 것 이다.

getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
  @Override
  public void onGlobalLayout() {
  //                         
  Rect rect = new Rect();
  View decorView = getWindow().getDecorView();
  decorView.getWindowVisibleDisplayFrame(rect);
  int displayHeight = rect.bottom - rect.top;
  //        ,      ,    
  keyboardHeight = decorView.getHeight() - displayHeight;
  if (displayHeight * 1.0 / decorView.getHeight() > 0.8) {
   dialog.dismiss();
  }
  }
 });
댓 글 의 EditText 는 숨 길 수 있 음 을 고려 하여 Dialog 에 쓰 고 Dialog 코드 를 초기 화하 면 붙 이지 않 습 니 다.
클릭 하여 Dialog 팝 업

private void showInputComment(View commentView, final int position) {
   //              
   final int rvInputY = getY(commentView);
   //         
   final int rvInputHeight = commentView.getHeight();
   dialog.show();

   handler.postDelayed(new Runnable() {
    @Override
    public void run() {
     int dialogY = getY(dialog.findViewById(R.id.dialog_layout_comment));
     //     
     rv.smoothScrollBy(0, rvInputY - keyboardHeight + dialogY + rvInputHeight);
    }
   }, 300);
  }

  /**
   *   View       
   * @param commentView
   * @return
   */
  private int getY(View commentView) {
   int[] outLocation = new int[2];
   commentView.getLocationOnScreen(outLocation);
   return outLocation[1];
  }
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기