사용자 정의 xml 속성 을 사용 하여 RecyclerView 의 LayoutManager 를 지정 합 니 다.

최근 RecyclerView 를 사용 하 는 것 을 배 울 때 inflate 의 XML 파일 에 따라 LayoutManager 를 동적 으로 지정 하 기 를 원 합 니 다. 일반적인 방법 은 사용자 정의 속성 을 통 해 LayoutManager 를 지정 하 는 것 입 니 다. 그러나 연구 소스 코드 를 통 해 미리 설 치 된 몇 가지 LayoutManager 가 하나의 구조 기 를 제공 하 는 것 을 발 견 했 습 니 다. 레이아웃 파일 에서 LayoutManager 를 사용자 정의 할 때 지정 할 수 있 습 니 다.Staggered GridLayoutManager 의 구조 기 를 예 로 들 면
    /**
     * Constructor used when layout manager is set in XML by RecyclerView attribute
     * "layoutManager". Defaults to single column and vertical.
     */
    @SuppressWarnings("unused")
    public StaggeredGridLayoutManager(Context context, AttributeSet attrs, int defStyleAttr,
            int defStyleRes) {
        Properties properties = getProperties(context, attrs, defStyleAttr, defStyleRes);
        setOrientation(properties.orientation);
        setSpanCount(properties.spanCount);
        setReverseLayout(properties.reverseLayout);
        setAutoMeasureEnabled(mGapStrategy != GAP_HANDLING_NONE);
        mLayoutState = new LayoutState();
        createOrientationHelpers();
    }

다른 몇 가지 미리 설 치 된 Layout Manager 의 하위 클래스 는 모두 유사 한 구조 기 를 가지 고 있다.
설명 에 따 르 면 XML 이 사용자 정의 속성 layoutManager 를 지정 할 때 시스템 은 이 속성 값 에 따라 LayoutManager 를 지정 합 니 다. 따라서 레이아웃 파일 을 쓸 때 사용자 정의 속성 을 추가 하면 LayoutManager 를 직접 지정 할 수 있 습 니 다.



좋은 웹페이지 즐겨찾기