2009-12-07 9 views
2

일부 안드로이드 뷰 클래스 (XML 파일에 정의 된 레이아웃을 감싸는 래퍼)를 만들려고합니다. 이 정확 :XML에서 LinearLayout 래핑

public class MyViewWrapper extends LinearLayout { 
    private TextView mTextView; 

    public MyViewWrapper(Context context) { 
     super(context); 
    } 

    public constructUI() { 
     LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     inflater.inflate(R.layout.myview, this); 

     mTextView = (TextView)findViewById(R.id.myview_textview); 
    } 
} 

그래서 생각 나는 그런 내 뷰를 구성 할 수있는 단지이며, 그들은 레이아웃 보이는 등 자신의 아이 뷰를 수정하기위한 내부 논리를 가지고 같은 :

<LinearLayout> 
    <TextView /> 
</LinearLayout> 

이 불필요한 LinearLayout을 얻으려고하는 것처럼 보입니다. 래퍼 클래스 자체는 LinearLayout이며, xml 파일의 내부 LinearLayout을 첨부합니다.

괜찮습니까?

감사

답변

1

당신은 <merge>과 레이아웃 파일에 <LinearLayout>를 교체 시도 할 수 있습니다. 나는 최근에 그것을 시도하지 않았고, 마지막으로 시도했을 때 문제가 발생했다고 생각하지만, 이론적으로는 그 목적을 달성해야합니다. <merge>는 기본적으로 "내 모든 아이들을 데려다가 내가 부풀려진 용기에 직접 넣어 라"는 의미입니다.