※ 引述《KeySabre (KeySabreur)》之銘言:
: 不知是否能夠利用 ViewGroup.OnHierarchyChangeListener
: 裡面有 onChildViewAdded(View parent, View child)
: 在這裡頭對child設height
: 如果不能
: 那就在這裡頭計算被add的次數
: >=7,判斷為ListView裡頭的view都已經layout,然後再...
: (是不是7可能要試一下,因為我記得getView跑的次數比child數多)
: 實際上
: 我只用過這招幫每個child view加上onTouchListener,沒試過更多了
這個問題在上次發問之後花了段時間
終於搞懂ANDROID中的view是怎麼設計的了
如果是已經放在頁面上的VIEW
可以用LayoutParams lp = view.getLayoutParams(); 取得設定
再用lp.height = 3; 之類的方式去設定他的高
再用view.setLayoutParams(lp);設定回去
但是,如果這個view還沒加到任何view下面的話
是不會有LayoutParams的
所以只能自己new一個給他.....
XXXXX.LayoutParams lp = new XXXXX.LayoutParams();
重點在這邊,這邊的LayoutParams,用的必需是parent的LayoutParams
如果打算把這個view放到ListView下,就必須用ListView.LayoutParams
如果打算放到LinearLayout下,就得使用LinearLayout.LayoutParams
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.233.155.148