주입 프레임 Butterknife의 사용에 의존하여findViewById와 작별합니다

1882 단어
Butterknife는 Jake Wharton이 개발한 의존 주입 프레임워크입니다. Github 주소:https://github.com/JakeWharton/butterknife
이 프레임워크를 사용하면 가장 흔한findViewById와 같은 대량의 코드를 절약할 수 있습니다. 만약 하나의 클래스에 대량의View가 있다면, 흔한 쓰기 방법에 따라view마다 한 줄의findViewById를 쓸 수 있습니다.버터크니프는 많은 코드를 게으름 피우게 할 뿐만 아니라 주석 프로세서를 사용합니다. 우리가 컴파일할 때 버터KnifeProcessor 클래스의 프로세스 () 방법이 실행되고 모든 버터Knife 주석 (@BindView) 을 검색한 다음 자바 클래스를 생성합니다.그래서 실행할 때findViewById를 사용하는 것과 비교하면 성능에 아무런 영향을 주지 않습니다.Butterknife는 현재 8.4.0 버전으로 안드로이드스튜디오 가져오기 방식은 공식github를 참고합니다.Activity 또는Dialog에서: 우선Activity의onCreate 방법이나Dialog의 초기화 방법에서 귀속하여this:ButterKnife.bind(this);물론 우리는Activity에서만 뷰를 초기화하는 것이 아니라 다른 곳에서도 초기화하는 것이 매우 간단하다. 모든 뷰의 루트 뷰를 전송한다ButterKnife.bind(view);

다음은 일반적인 사용 시나리오입니다.


4
  • View 바인딩(View는 private 또는 static일 수 없음): 4
  • @BindView(R.id.imageView)
    ImageView imageView;
    

    4
  • 뷰에 클릭 이벤트 추가: 4
  • @OnClick(R.id.imageView)
    public void onImageView() {
            Toast.makeText(this, "onImageClick", Toast.LENGTH_SHORT).show();
    }
    

    4
  • 여러 View에 클릭 이벤트 추가: 4
  • @OnClick({R.id.imageView, R.id.textView})
    @Override
    public void onClick(View v) {
            Toast.makeText(this, v.getClass().getSimpleName() + ":onClick", Toast.LENGTH_SHORT).show();
    }
    

    4
  • ListView setItemClickListener: 4
  • @OnItemClick(R.id.listView)
    @Override
    public void onItemClick(AdapterView parent, View view, int position, long id) {
            Toast.makeText(this, "onItemClick" + position, Toast.LENGTH_SHORT).show();
    }
    

    일반적으로 우리는 하나의 View를 위해 각종 감청 리셋을 설정한다. 예를 들어 On Checked Changed On Editor Action On Focus Change On Long Click On Selected On Page Change On Touch On Text Changed Butterknife는 한 줄의 간단한 주석을 통해 우리를 실현할 수 있고 사용 방법도 간단하다. 확실히 우리로 하여금 코드를 많이 줄일 수 있게 하는 게으름뱅이 신기이다.

    좋은 웹페이지 즐겨찾기