作者LaPass (LaPass)
看板AndroidDev
標題[問題] 設定BaseAdapter返回的view的高
時間Mon Apr 16 16:38:13 2012
打算讓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)
1F:→ lovelycateye:有ListView.LayoutParams這玩意嗎? 04/16 20:38
2F:推 yauhh:要只出現7個,可以override getCount()寫成return 7 04/16 22:45
3F:→ lovelycateye:話說我在想你這需求...你確定用ListView好嗎? 04/16 23:25
4F:→ lovelycateye:我總覺得內情並不單純,你不考慮說一下你要做的東西? 04/16 23:26
5F:→ LaPass:getcount是指總數,我要的是listview中出現七個,每個的高 04/17 01:01
6F:→ LaPass:剛好是1/7..... 要指定多少是可以算出來。但是我目前找不到 04/17 01:01
7F:→ LaPass:方法在view在返回前設定他的高.... 04/17 01:02
8F:→ LaPass:還有,回1F,那個view是自己寫的layout的xml檔來的,是 04/17 01:03
9F:→ LaPass:linerlayout 04/17 01:03
10F:→ yauhh:你這樣回答之前不先試試看嗎? 04/17 01:04
11F:→ LaPass:目前試過的方法都失敗了..... 失敗的方法都在文中 04/17 01:05
12F:→ yauhh:ListView會參考adapter,當你改了adapter的一些東西,就改了 04/17 01:05
13F:→ yauhh:ListView參考的基準. 04/17 01:05
14F:→ LaPass:他會重新叫一次getview..... 我每次叫getview時都會new一個 04/17 01:06
15F:→ yauhh:基本ListView不會設為wrap_content,所以是match_parent, 04/17 01:09
16F:→ LaPass:view,所以都必須要找出返回前設定寬高的辦法..... 04/17 01:09
17F:→ yauhh:那主要決定項目高度就是項目的layout. 也許你可以死刻高度. 04/17 01:10
18F:→ LaPass:被要求考慮平板、手機的問題.... 所以.... orz.... 04/17 01:13
19F:→ yauhh:或可試試設定項目的高度是match_parent,layout_weight設為1 04/17 01:19
20F:→ yauhh:我只知道好幾個ListView搶fill_parent時,會按layout_weight 04/17 01:20
21F:→ yauhh:搶到自己所佔比例的尺寸. 不曉得在項目方面是否也適用 04/17 01:21
22F:→ LaPass:唔 謝謝 我明天試試看 04/17 01:58
23F:→ LaPass:無效...orz 04/17 09:05