作者KeySabre (KeySabreur)
看板AndroidDev
标题Re: [问题] 设定BaseAdapter返回的view的高
时间Sun May 6 03:50:55 2012
不知是否能够利用 ViewGroup.OnHierarchyChangeListener
里面有 onChildViewAdded(View parent, View child)
在这里头对child设height
如果不能
那就在这里头计算被add的次数
>=7,判断为ListView里头的view都已经layout,然後再...
(是不是7可能要试一下,因为我记得getView跑的次数比child数多)
实际上
我只用过这招帮每个child view加上onTouchListener,没试过更多了
※ 引述《LaPass (LaPass)》之铭言:
: 打算让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.219.167.204