우리는 관련 운영 체제 및 응용 프로그램 또는 시스템을 취득 할 때 시스템을 통해 1. 획득 시스템 레이아웃 매니저는이 방법이 일반적으로 사용된다
LayoutInflater에서 인플레이터 = (LayoutInflater에서) Context.getSystemService (Context.LAYOUT_INFLATER_SERVICE) 如활성은 클래스의 맥락에서 필요 컨텍스트 경우 생략 될 수있다;
보기 MVIEW = inflater.inflate (문맥, R.layout.XX, 루트);
2. 액티비티의 뷰 그룹의 서브 레이아웃을 제공하기 위해 추가 된 다음과 같은 방법으로
보기 MVIEW = getLayoutInflate.inflate (R.layout.xx, 루트, 거짓);
이러한 사용자 정의 대화 상자 나 토스트로 일반적으로 사용자 지정 컨트롤에 사용되는 정적보기를 획득하여 3. 사용할 수 있습니다
보기 MVIEW = View.inflate (문맥, R.layout.xx, 거짓);
4 LayoutInflate 부풀려 () 메소드를 통해 구현되고, 로딩 BaseAdapter의 전형적인 실시 형태의 레이아웃
보기보기 = LayoutInflater.from (컨텍스트) .inflate (R.layout.xx, rootView, 거짓);
다음은 사용 Layoutinflate의 네 종류의. 간단하게 바코드의 차이 또는 네 가지를 다음의 관계의 본질에 대해 말하기로
첫째 : 액티비티에서,
공공 LayoutInflater에서 getLayoutInflater () {
하여 GetWindow ()를 호출 getLayoutInflater를 ();.}
하단의 활동 또는 Window 클래스 추상 메소드를 호출
공개 LayouInflater getLayoutInflater (컨텍스트 컨텍스트) {
창 LayoutInflate.from (컨텍스트 컨텍스트);
창 클래스이지만}, 어떻게 그것을 호출? 다음과 같은 내용을 고려
창은 정적 인 방법을 통해 얻을 수 있습니다 위해 LayoutInflater
공공 정적보기 부풀려 (문맥 mContext, LayoutRes 입술, 뷰 그룹 루트) {
LayoutInflater에서 mLayoutInflater = LayoutInflater.from (mContext);
반환 mLayoutInflater.inflate (고해상도, 루트);
}
그 LayoutInflater에서이 추상 클래스는 또한 주목할만한 그것은 궁극적으로 호출 시스템을 얻을 수있는 방법이다
공공 추상적 위해 LayoutInflater는 개체 {확장
(문맥 mContext)에서 공용 static 정적 LayoutInflater에서 {
LayoutInflater에서 mLayoutInflater = (LayoutInflater에서) mContext.getSystemService (Context.LAYOUT_INFLATER_SERVICE);
경우 (mLayoutInflater == NULL) {
예외 (예외 E)를 발생;
}
mLayoutInflater를 반환;
}
}