從xml inflate自定義的View

鴨脖發表於2012-08-27

今天想自己實現一個View,這個View是常駐在程式中的,然後我會用自己的handler去重新整理它。首先我想說的是這個View比較的複雜,其中有很多其他的子View。那麼我想在它的建構函式中直接從xml中inflate出來這個View。那麼該怎麼做呢?

在這個View的建構函式中,加上下面這句話就可以實現上述要求:

LayoutInflater.from(context).inflate(R.layout.second, this,true);

這句話的意思就是:

將xml中的View樹Inflate出來並且使用this提供的parent引數

boolean值的意思是:

Whether the inflated hierarchy should be attached to the root parameter? If false, root is only used to create the correct subclass of LayoutParams for the root view in the XML.

也就是當inflate之後,是否將這個this當作子View的parent並且將子View  attach上去。

由於android中的View只能有一個Parent,所以這個boolean的值還是很關鍵的,這意味著如果這個值是true的話,那麼如果你想在其他的iewgroup上新增這個inflate出來的iew的話,你就必須在這個this上面remove這個iew。

相關文章