2017-10-10 1 views
0

RecycleView의 각 데이터 항목에 대해 onCreateViewHolder에 컴파운드보기를 추가합니다. 데이터 항목 값에 따라 오른쪽 또는 왼쪽으로 정렬해야합니다.RecycleView 어댑터에 추가 된보기의 레이아웃 매개 변수를 설정하는 방법은 무엇입니까?

내가 그 방법에 뷰의 레이아웃 매개 변수를 설정하는 경우는, 그들은 XML 레이아웃 파일의 값으로 대체됩니다.

유일한 해결책은 두 가지 레이아웃 파일을 가지고 있지만 불필요한 파일을 복제하는 것입니다.

코드로 어떻게 수행 할 수 있습니까?

업데이트 : 아래 코드에서 onBindViewHolder도 시도해보십시오. 상기 데이터 항목의 데이터에 따라 수행

@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 

    View v = holder.itemView; 

    //to simplify i try to aling all to the rigth 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    params.addRule(RelativeLayout.ALIGN_PARENT_END); //this settins has effect if defined on the layout file 
    v.setLayoutParams(params); 
} 

답변

0

발견. 나는 holder.itemView이 Compound View i가 추가 된 것이라고 생각했습니다. 컴파운드 뷰를 얻고 그 뷰에 매개 변수를 설정하려면 findViewById을 사용해야했습니다.

View v = holder.itemView.findViewById(android.R.id.content); 

는 그런 문제에 게시 된이보기에 매개 변수를 적용 그래서,이 솔루션은이 같은 itemView에서 복합를 찾을 수 있었다.

1

은 아무것도하지 onCreateViewHolder에서 onBindViewHolder에서 수행되어야한다. 생성시 실제 바인딩 된 데이터 또는 바인딩 된 위치에 관계없이 올바른 내용 만 설정해야합니다. 모든 데이터 및 위치 별 설정은 onBindViewHolder에서 완료됩니다.

+0

모든 의미가 있지만 이미 시도했지만 작동하지 않았습니다. – ByteArtisan

관련 문제