[問題] GridView 高度設定問題

作者: TPNEW (Peisky)   2014-11-22 22:06:53
目前想要用GridView做個類似日曆的UI
但是每格內容不一致 造成大小不一樣 結果GridView的背景就跑出來了


格子內的Layout配置是一個RelativeLayout包兩個TextView
我在Adapter的裡面有計算最高的高度 並把每格的高度設定到最高
public View getView(int position, View convertView, ViewGroup parent) {
....
....
// holder.background 是格子內的RelativLayout
if(holder.background.getMeasuredHeight() > MaxHeight)
MaxHeight = holder.background.getMeasuredHeight();
holder.background.setMinimumHeight(MaxHeight);
....
....
}
但是這樣只有後面會被設定到最高高度
要把GridView往下捲 再往回捲 剩下的RelativLayout的高度才會被設定


想說call notifyDataSetChanged() 讓他在抓到最高高度的狀況下重刷一遍getView
但是沒有效果 (對GridView沒有用?)
還有另一個疑惑的問題
我現在最理想的狀況就是GridView格子都一樣大
然後GridView是完整的寬高 (就是不用捲動就可以全部顯示)
然後我發現在第二張圖的狀況下 點開上面的Spinner 然後選取任一Item
結果GridView就會自動伸展到完整的寬高 (UI被Update了?)
就像這樣

選取完Spinner之後到底背後做了甚麼?
註: spinner我都還沒設任何Listner上去
問題一:如何將GridView同一行(或全部)的高度都一致?
問題二:如何讓GridView顯示完整的寬高?
問題三:為什麼選取完spinner以後會發生上面那種現象?
作者: ssccg (23)   2014-11-22 23:06:00
1 2 直接設固定高度不要用wrap_content?
作者: passli   2014-11-22 23:48:00

Links booklink

Contact Us: admin [ a t ] ucptt.com