Android Data Binding 사용 노트

앞에서 말 하기: 먼저 세 개의 문서, 홈 페이지 문서:https://developer.android.com/topic/libraries/data-binding/index.html 홈 페이지 문서 의 한 화 버 전:http://www.jianshu.com/p/b1df61a4df77  github 의 제3자 문서:https://github.com/LyndonChin/MasteringAndroidDataBinding
1. 자바 의 언어 동적 속성 이 매우 제한 되 어 있 기 때문에 이 바 인 딩 의 실현 은 코드 생 성 기술 에 의존 하 는 것 으로 기술적 인 측면 에서 좋 지 않다.홈 페이지 문서 의 오 류 는 정적 언어 특성 과 관련 이 있 습 니 다. 예 를 들 어 Bind 설정 변 수 는 공식 지침 이 아 닌 setVariable 함수 입 니 다.용법 은 다음 과 같다.
viewDataBinding.setVariable(BR.variable_name,varaible);

2. 예 를 들 어 렌 더 링 List 는 data 속성 정의 에 '문자' 가 존재 하지 않 기 때문에 두 기 호 를 HTML 전의 문자열 < 와 > 로 바 꿔 야 합 니 다. 그리고 안의 유형 은 자바 내 건축 유형 을 제외 하고 다른 것 은 클래스 전체 이름 으로 쓰 는 것 이 좋 습 니 다. 그렇지 않 으 면 찾 을 수 없습니다.
3. ImageView 를 렌 더 링 하려 면 BindingAdapter 특성 을 활용 하여 먼저 BindingAdapter 를 실현 해 야 합 니 다.
4. 567913. 그리고 url 을 직접 렌 더 링 할 수 있 습 니 다.
 @BindingAdapter({"imageUrl"})
    public static void loadImage(ImageView view, String url){
        if (url==null || "".equals(url)){
            view.setImageDrawable(view.getContext().getResources().getDrawable(R.drawable.place_image));
        }else{
            Glide.with(view.getContext()).load(url).into(view);
        }
    }

4. onCreate 로 딩 문제: Activity onCreate 에서 네트워크 대상 을 불 러 오고 레이아웃 에 이 대상 에 의존 하 는 bool 변수 가 있 으 면 null 대상 호출 오류 가 발생 할 수 있 습 니 다. 네트워크 로 딩 시 비동기 적 인 것 으로 추정 되 기 때문에 보기 가 렌 더 링 되 지 않 았 을 때 해결 방법 은 네트워크 대상 을 불 러 오기 전에 자리 잡 는 대상 을 전송 할 수 있 습 니 다. 그 안에 필요 한 것 을 전달 할 수 있 습 니 다.불 변수 할당

좋은 웹페이지 즐겨찾기