看板 AndroidDev 關於我們 聯絡資訊
打算讓listview在頁面上只出現7行 每行佔頁面的1/7 請問該怎麼做? 目前自己試過的方法是這樣.... 用ListActivity時,會用到BaseAdapter這個東西 裡面有個getView是給底層取得view用的 public View getView(int position, View view, ViewGroup parent) { ..... } 在裡面有產生view的方法,是這樣 view=adapterLayoutInflater.inflate(R.layout.calender_week_row, null); 其中 LayoutInflater adapterLayoutInflater = LayoutInflater.from(c); c是這隻程式的activity 我原本想用這種方式,去修改view的高 ViewGroup.LayoutParams lp =view.getLayoutParams(); lp.height = 50; //某個計算出來的值 view.setLayoutParams(lp); 用這種方法去改已經生成的view沒問題 可是,因為這個listview呼叫getview時 還沒被加到頁面上,所以lp會是null 自己ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams()也不對 會出現ClassCastException 我就投降了..... -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.16.65 ※ 編輯: LaPass 來自: 61.59.16.65 (04/16 17:47)
lovelycateye:有ListView.LayoutParams這玩意嗎? 04/16 20:38
yauhh:要只出現7個,可以override getCount()寫成return 7 04/16 22:45
lovelycateye:話說我在想你這需求...你確定用ListView好嗎? 04/16 23:25
lovelycateye:我總覺得內情並不單純,你不考慮說一下你要做的東西? 04/16 23:26
LaPass:getcount是指總數,我要的是listview中出現七個,每個的高 04/17 01:01
LaPass:剛好是1/7..... 要指定多少是可以算出來。但是我目前找不到 04/17 01:01
LaPass:方法在view在返回前設定他的高.... 04/17 01:02
LaPass:還有,回1F,那個view是自己寫的layout的xml檔來的,是 04/17 01:03
LaPass:linerlayout 04/17 01:03
yauhh:你這樣回答之前不先試試看嗎? 04/17 01:04
LaPass:目前試過的方法都失敗了..... 失敗的方法都在文中 04/17 01:05
yauhh:ListView會參考adapter,當你改了adapter的一些東西,就改了 04/17 01:05
yauhh:ListView參考的基準. 04/17 01:05
LaPass:他會重新叫一次getview..... 我每次叫getview時都會new一個 04/17 01:06
yauhh:基本ListView不會設為wrap_content,所以是match_parent, 04/17 01:09
LaPass:view,所以都必須要找出返回前設定寬高的辦法..... 04/17 01:09
yauhh:那主要決定項目高度就是項目的layout. 也許你可以死刻高度. 04/17 01:10
LaPass:被要求考慮平板、手機的問題.... 所以.... orz.... 04/17 01:13
yauhh:或可試試設定項目的高度是match_parent,layout_weight設為1 04/17 01:19
yauhh:我只知道好幾個ListView搶fill_parent時,會按layout_weight 04/17 01:20
yauhh:搶到自己所佔比例的尺寸. 不曉得在項目方面是否也適用 04/17 01:21
LaPass:唔 謝謝 我明天試試看 04/17 01:58
LaPass:無效...orz 04/17 09:05