Android 에서 RecyclerView 의 item 너비 문제 에 대한 상세 한 설명

머리말
본 고 는 주로 안 드 로 이 드 에서 RecyclerView 의 item 너비 와 높 은 문제 에 관 한 내용 을 소개 하고 참고 학습 을 제공 합 니 다.다음은 더 이상 할 말 이 없 으 니 상세 한 소 개 를 해 보 겠 습 니 다.
viewholder 가 들 어 오 는 View 를 만 들 때 viewgroup 을 지정 하지 않 으 면 내용 만 패키지 로 표시 하 는 문제 가 발생 합 니 다.

View view = LayoutInflater.from(context).inflate(R.layout.test_test,null);
위의 방법 에 문제 가 생 길 수 있다.
이렇게 바 꾸 면 설정 의 너비 와 높이 를 정상적으로 표시 할 수 있 습 니 다.

View view = LayoutInflater.from(context).inflate(R.layout.test_test,parent,false);
그럼 한 가지 문제 가 있 습 니 다.
만약 에 제 view 가 adapter 가 만 들 기 전에 만 들 어 졌 다 면 제 view 는 밖에서 들 어 왔 습 니 다.onCreate View Holder 방법 에서 만 든 것 이 아 닙 니 다.이렇게 하면 parent 를 설정 할 수 없습니다.이런 상황 에 직면 하면 또 어떻게 처리 해 야 합 니까?
저도 많은 방법 만 찾 았 습 니 다.예 를 들 어 onCreate View Holder 방법parent.addView()에서 도 소 용이 없습니다.
인터넷 에서 많은 댓 글 을 찾 아 보 았 는데 모두 헛소리 였 다.어 쩔 수 없 이 나 는 소스 코드 를 볼 수 밖 에 없 었 다.마침 해결 방법의 관건 을 발견 할 줄 은 생각 하지 못 했다.
원본 코드 를 보면 알 수 있 습 니 다.



여기 서 우리 가 사용 하 던 parent 가 바로 RecyclerView.this 였 다.
이 는 view 를 만 들 기 전에 recyclerview 가 있 으 면 adapter 전에 view 를 만 들 더 라 도 이 view 를 recyclerview 에 정상적으로 표시 할 수 있다 는 뜻 이다.

추가 내용:아 이 템 의 너비 와 높이 문 제 를 다른 유형 으로 해결 합 니 다.
위의 내용 은 내 가 아주 일찍 쓴 것 인 데,지금 새로운 상황 에 부 딪 혔 으 니 보충 해 보 자.위 에서 말 했 듯 이 아 이 템 을 만 들 때 parent 를 지정 하지 않 으 면 마지막 으로 보 여 주 는 효 과 는 패키지 내용 입 니 다.
예 를 들 면:

<RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:padding="10dp">
  <TextView
   android:id="@+id/tv_test"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="@dimen/text_size_15"
   android:layout_centerInParent="true" />
 </RelativeLayout>
이러한 item 레이아웃 은 TextView 를 중간 에 표시 하 더 라 도 실제 실행 할 때 왼쪽 에 보 여 줍 니 다.이 상황 은 Relative Layout 의 view group 이 안의 공 기 를 빼 내 는 것 과 같 습 니 다.
위의 해결 방법 은 문제 가 없습니다.만 들 때 이 레이아웃 에 parent 를 설정 합 니 다.그러나,때때로 당신 은 결합 을 풀 어 RecyclerView 와 item 의 결합 도 를 낮 출 때 가 있 습 니 다.이것 은 item 레이아웃 을 만 드 는 것 입 니 다.RecyclerView 라 는 parent 를 가 져 오 는 것 은 매우 번 거 롭 습 니 다.이 때 는 어떻게 합 니까?
사실은 parent 를 설정 하지 않 으 면 Item 의 너비 도 전체 부모 의 구 조 를 채 울 수 있 습 니 다.왜 냐 면 이런 상황 에서 item 의 너 비 는 원래 구 조 를 채 웠 습 니 다.즉,너비 에'공기'가 없 기 때문에 더 이상 넓 게 압축 되 지 않 습 니 다.
이 원리 에 따라 우 리 는 이 문 제 를 해결 할 수 있다.그것 은 바로 구조의 폭 을 채 우 는 방법 을 강구 하 는 것 이다.Relative Layout 에 게 는 쉬 운 일이 다.

<RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:padding="10dp">
  <TextView
   android:id="@+id/tv_test"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="@dimen/text_size_15"
   android:layout_centerInParent="true" />

  <TextView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentRight="true"
   />
 </RelativeLayout>
이렇게 쓰 면 전시 할 때 첫 번 째 TextView 의 내용 이 중간 까지 정상적으로 전 시 됩 니 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기