[問題] 設定BaseAdapter返回的view的高

看板AndroidDev作者 (LaPass)時間14年前 (2012/04/16 16:38), 編輯推噓1(1022)
留言23則, 3人參與, 最新討論串1/4 (看更多)
打算讓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)

04/16 20:38, , 1F
有ListView.LayoutParams這玩意嗎?
04/16 20:38, 1F

04/16 22:45, , 2F
要只出現7個,可以override getCount()寫成return 7
04/16 22:45, 2F

04/16 23:25, , 3F
話說我在想你這需求...你確定用ListView好嗎?
04/16 23:25, 3F

04/16 23:26, , 4F
我總覺得內情並不單純,你不考慮說一下你要做的東西?
04/16 23:26, 4F

04/17 01:01, , 5F
getcount是指總數,我要的是listview中出現七個,每個的高
04/17 01:01, 5F

04/17 01:01, , 6F
剛好是1/7..... 要指定多少是可以算出來。但是我目前找不到
04/17 01:01, 6F

04/17 01:02, , 7F
方法在view在返回前設定他的高....
04/17 01:02, 7F

04/17 01:03, , 8F
還有,回1F,那個view是自己寫的layout的xml檔來的,是
04/17 01:03, 8F

04/17 01:03, , 9F
linerlayout
04/17 01:03, 9F

04/17 01:04, , 10F
你這樣回答之前不先試試看嗎?
04/17 01:04, 10F

04/17 01:05, , 11F
目前試過的方法都失敗了..... 失敗的方法都在文中
04/17 01:05, 11F

04/17 01:05, , 12F
ListView會參考adapter,當你改了adapter的一些東西,就改了
04/17 01:05, 12F

04/17 01:05, , 13F
ListView參考的基準.
04/17 01:05, 13F

04/17 01:06, , 14F
他會重新叫一次getview..... 我每次叫getview時都會new一個
04/17 01:06, 14F

04/17 01:09, , 15F
基本ListView不會設為wrap_content,所以是match_parent,
04/17 01:09, 15F

04/17 01:09, , 16F
view,所以都必須要找出返回前設定寬高的辦法.....
04/17 01:09, 16F

04/17 01:10, , 17F
那主要決定項目高度就是項目的layout. 也許你可以死刻高度.
04/17 01:10, 17F

04/17 01:13, , 18F
被要求考慮平板、手機的問題.... 所以.... orz....
04/17 01:13, 18F

04/17 01:19, , 19F
或可試試設定項目的高度是match_parent,layout_weight設為1
04/17 01:19, 19F

04/17 01:20, , 20F
我只知道好幾個ListView搶fill_parent時,會按layout_weight
04/17 01:20, 20F

04/17 01:21, , 21F
搶到自己所佔比例的尺寸. 不曉得在項目方面是否也適用
04/17 01:21, 21F

04/17 01:58, , 22F
唔 謝謝 我明天試試看
04/17 01:58, 22F

04/17 09:05, , 23F
無效...orz
04/17 09:05, 23F
文章代碼(AID): #1FYzfudk (AndroidDev)
文章代碼(AID): #1FYzfudk (AndroidDev)