3

我有一個xml佈局,當充氣到View對象時,佈局顯示如預期。不過,我創建了一個自定義的LinearLayout類,並通過在構造函數中使用Android自定義LinearLayout和充氣xml

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

創建類的實例時膨脹xml佈局。我沒有設置任何LayoutParams或自定義LinearLayout類中的任何內容,並且當我嘗試顯示自定義類時,似乎會放置一些奇怪的邊距,以便切斷佈局中的某些文本。

我想知道是否有任何方法來設置自定義LinearLayout因此它對佈局xml沒有任何影響,但只是充當不可見的容器。我認爲設置「attachToRoot」爲真時,充氣將解決這個問題,但沒有按預期工作。

+3

帶有問題的圖像或甚至更好的代碼會非常有幫助。 – Luksprog

回答

0

當使用inflate(..)與attachToRoot =真,這是物理上放置XML的的ViewGroup內,像這樣的等價物:

<LinearLayout ..> 
    <TextView .. /> 
</LinearLayout> 

而且這意味着被measure當「d和由LinearLayout它將佈置繼承您正在膨脹的xml佈局中施加的任何佈局屬性。

所以,如果你<TextView..>包含android:layout_margin="8dp"padding例如那麼你CustomLinearLayout也將佈置使用這些Layout性質的看法。

如果您想讓我爲您修復/創建更好的解決方案,我會發布更多的代碼。