我已經創建了一個派生自LinearLayout的自定義佈局管理器。 (我真的不使用太多的LinearLayout功能,但我不想去關心所有的很多ViewGroup中抽象方法。)我已經覆蓋僅Android自定義佈局管理器 - 兒童佈局
protected void onLayout(boolean changed, int l, int t, int r, int b)
方法,我稱之爲child.layout(...)在MyLayout.onLayout(...)爲其每個孩子。所有其他的東西都是原始的LinearLayout。如果孩子是沒有孩子的簡單控制(MyLayout的孫子),它將工作正常,並且孩子將被正確地放置在他們的父母MyLayout中。
當我使用一些ViewGroup(LinearLayout,ViewSwitcher,...)和兒童作爲MyLayout的子時出現問題。在這種情況下,MyLayout中的子節點放置得很好,但是MyLayout中的孫子節點卻不在。看起來參數和值像wrap_content,fill_parent,layoutWeight沒有正確處理。例如,MyLayout中的ViewSwitcher不顯示其內容,具有fill_parent的LinearLayouts(MyLayout的子級)子項(MyLayout的子孫)的大小爲0px,CompoundButton(MyLayout的子項)有時不顯示其文本...
它在MyLayout.onLayout中似乎child.layout(...)正確設置每個孩子的大小和位置,但我需要調用其他一些方法來使每個孩子的佈局運行良好(如果孩子是帶孩子的ViewGroup)。有沒有像這樣或MyLayout只是改變onLayout應該工作好?
感謝您的所有建議。
你也chould能夠測量 – siliconeagle 2012-01-05 16:32:42
非常感謝後使用getMeasuredWidth()getMeasuredHeight()!你是對的! – 2012-01-05 16:33:24
關心獎勵積分?這是正確的做...;) – siliconeagle 2012-01-06 15:57:43