코딩슬레이브
369
2021-03-09 04:39:30
1
118

안드로이드) 다이얼로그 프래그먼트에서 getHeight가 안됩니다..ㅜ


다이얼로그 프래그먼트의 높이를 다이얼로그프래그먼트가 가지는 뷰의 5개에 해당하는 높이로 설정해주려고하는데.. getHeight()가 자꾸 0값으로 나옵니다 어떤것때문일까요 ㅠㅠ


public class WritingCommentDialogFragment extends DialogFragment implements CommentModel.EditInputListener {
    OnBackPressedCallback callback;

    LinearLayout commentContainer; // input layout
    private final List<Comment> comments = new ArrayList<>();
    private LayoutInflater layoutInflater;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_writing_comment_dialog, container, false);

        bindViews(view);
        addCommentItem(); // 첫아이템
        Toast.makeText(getContext(), "onCreateView()", Toast.LENGTH_SHORT).show();
        return view;
    }

    private void bindViews(View v) {
        commentContainer = v.findViewById(R.id.container);
        layoutInflater = LayoutInflater.from(getContext());
    }

    @NonNull
    @Override
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
        Dialog dialog = super.onCreateDialog(savedInstanceState);
        dialog.setCanceledOnTouchOutside(false);
        return dialog;
    }

    @Override
    public void onResume() {
        super.onResume();
        setDialogSize();
    }

    private void setDialogSize() {
        View v = LayoutInflater.from(getContext()).inflate(R.layout.writing_comment_item, null, false);
        int h = v.getHeight() * 5;
        getDialog().getWindow().setLayout(1000, h);
    }

}



0
  • 답변 1

  • OkkyActivity
    418
    2021-03-09 15:01:16

    아직 뷰가 그려지지 않은 상태입니다


    실제로 뷰의 정확한 w,h 를 얻고싶으시다면


    각 뷰가 가지고 있는

    viewTreeObserver 를 이용해서 사이즈를 재야합니다~



  • 로그인을 하시면 답변을 등록할 수 있습니다.