본문 바로가기

Android

[Android] RecyclerView Item의 match_parent가 작동하지 않을 때

RecyclerView를 사용하면서 ViewHolder 생성을 위해 layout inflater을 사용하는데 Root Layout의 android:layout_width="match_parent" 가 작동하지 않았습니다. 이상하게 wrap_content를 한 것 처럼 작동했습니다. DataBinding을 함께  사용하고 있었기 때문에  그때 사용했던 코드의 모습입니다.

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    LayoutInflater inflater = LayoutInflater.from(parent.getContext());
    ItemTestBinding binding = ItemTestBinding.inflate(inflater);
    return new ViewHolder(binding.getRoot());
}

구글링을 해보니 LayoutInflater.inflate를 할 때 ViewGroup을 주면 해결된다고 합니다.

해결된 코드

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    LayoutInflater inflater = LayoutInflater.from(parent.getContext());
    ItemTestBinding binding = ItemTestBinding.inflate(inflater, parent, false);
    return new ViewHolder(binding.getRoot());
}