作者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