正常来说,在ScrollView添加一个ListView后在真机上只会显示ListView的一行多一点,我也不理解为什么会这样,后来我把ListView的layout_height改成400dip,而不是用match_parent和wrap_content,我发现这样的话ListView就显示的多了很多。所以就产生了把ListView所有的item的高度算出来给ListView设置的想法。下面是代码:
public void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); params.height += 5;//if without this statement,the listview will be a little short listView.setLayoutParams(params); }
在代码的倒数第二行二我又给加了5个像素,这是因为我在listview的属性里面添加了padding=5dip。
然后每次ListView的数据一有变化就用这个函数设置一下就好了,不过这样总感觉效率很低,希望有达人给指点一下。
简单来说就是把layout_height写死,这种办法也很适用于GridView(如果能估计得出GridView的高度的话)。
listview与ScrollView老问题的另类解法
http://www.eoeandroid.com/thread-42893-1-1.html
这几天一直被listview怎么合理的放进scorllview中的问题困扰,尝试过把listview放入scorllview中的朋友都知道,被放入的listview显示是有问题的,无论怎么设置layout都只显示大概2行的高度,看起来很郁闷,更别说美观了,后来上网查询了一下,解决方法有的是用linearlayout替换listview,还有修改onmeasure的,我比较懒个人感觉很麻烦不喜欢,终于想出了一个还算和谐的解决方法:xml中的textlist设置如下:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#44444444">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/ll1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:orientation="vertical"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="30dp"
android:paddingBottom="30dp"
android:background="#ff888888">
<TextView
android:text="あ"
android:textColor="#ffeeeeee"
android:textSize="18sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"></TextView>
<ListView
android:scrollbars="none"
android:stackFromBottom="true"
android:id="@+id/lv0"
android:layout_width="fill_parent"
android:layout_height="20dp"></ListView>
</LinearLayout>
</ScrollView>
</LinearLayout>
其中的textview是我做的东西要用到的,和方法无关可以不看,然后就是在java中重新设置listview的高度了,目的是把listview“撑”开:
LinearLayout.LayoutParams lp5 =new LinearLayout.LayoutParam(LayoutParams.FILL_PARENT, listItem.size()*51-1);
其中第一个属性不必说了,第二个是为了计算listview要设置的总高度用的,51是我事先设置好的一行的高度(50)+每行之间的间隔(1)而得来的,listItem.size()是我要显示的行数,用.setLayoutParams(lp5);来重新设置高度,其他别的设置跟以前一样,想要源码我整理完之后贴出来
如果不想写死,那就看下面的文章
Android 解决ListView 和 ScrollView 共存冲突的问题
http://labs.chinamobile.com/mblog/532767_72693?wralxianxrnx
http://blog.liaoxiaoqi.com/?p=503
10、
妇女进步奖 今天,老婆逛街归来,进屋就嚷开了:这日子没法过了,咱俩死了得了,这两个死钱不吃不喝还能撑到月底?除了工资外,没有不涨的东西,买了五
块钱的猪肉,炖点酸菜还不够你一个人造的。明天赶快回你妈家,多拿点白菜土豆回来,好坚持一下。顺手掏出一包卫生巾扔到桌上,说了一句让我震惊的话:再
TM涨,这月经都来不起了。
9、
最佳音响奖 那天路过一路口,有放屁的欲望,正好有一个人在蹬摩托,我就想借此机会掩盖自己的屁声,哪知道声音过大,那蹬摩托的人以为发动开了,挂上档就要走,那次我糗大了......
8、手机商特别奖 我的一个朋友,新买了个手机。结果上公共厕所的时候不小心把手机掉到便坑里去了。不幸之中的万幸是便
坑里面的东西很粘稠,手机没有没到里面去。正当他准备找东西捞手机的时候,有人给他打电话!恰巧他的手机又调的是震动,眼看着手机振颤着、慢慢的,消失在
了粘稠的、深深的便坑里......
7、IT年度奖 修理电脑时,一口痰吐到了主机箱里,结果电脑弹出发现新硬件~
6、
中文文学奖 办公室三人,二男一女,大男45岁,小男21岁,女30岁。 三人之间没有竞争,所以关系融洽,相处得宜。 某日,女的上调,从这个办
公室搬出去了,庆贺酒宴上,大男祝酒后,质问女人:你为什么要抛夫弃子?,抛夫弃子引得全桌人哄堂大笑。 又一日,小男也上调了,庆贺酒宴上,先走的那
女人的丈夫,酸酸地问大男:听说上次酒宴上,先生语出惊人,这回有什么好说的? 大男愣一愣,说:还有什么好说的,俺奋斗半生,只落得如今妻离子散!
5、
生物和谐奖 重庆以前有个经典地名,叫做人和,取的天时、地利、人和的意思 那边有个单位,挂的招牌很无敌 人和瘦肉型猪配种场
4、
最佳阅读奖 去华师大后门吃烧烤 烧烤摊前有一广告上书三行大字: 烤 牛肉串 鸡腿 鸡心 偶旁边一NB的MM很大声的读到:烤牛鸡鸡
3、
最佳服务奖 一天,我和表哥去赶公交车,好不容易等来一辆,可车上的人太多了,前门根本就挤不上。我们只好在前门刷了卡,从后门上车,可车上的人实在太
多,后门也挤不上。 于是,司机大哥就和我们商量:我先发动车,慢点开,你们跟在车后面跑跑。 我和表哥这个纳闷:这算什么办法啊?可也没有办法,只
有跟在车屁股后面跑。眼看车开出大概有十来米,忽然一个急刹车,车上的乘客把持不住身体,全部倒向车的前面去了,后门一下子腾出好大一块地方。 这时,
司机大哥得意地招呼我们:快上,快上……
2、
最强爱心奖 我在公交车里听到别人打电话到电台点歌,有一个男人打电话进去说:我是外地人,现在回家的车票买不到了,只好在北京过年了。我想点首歌。
主持人问他:你想点歌送给谁? 我当时还想这还用问,肯定是远方的父母亲人了,谁知道他却回答说:我想点一首陈小春的《算你狠》,送给北京站所有工作
人员以及所有票贩子!
1、年度大奖 我当年在川大时,有一回和宿舍的老六在校园里闲逛,边走边喝易拉罐的百事可乐,看见一果皮箱我俩打
赌,看谁站得最远还能投进,输得晚上请客。本人出手就中,到老六他专门站的更远,使出吃奶劲儿一扔,扔中果皮箱的顶部,叭!一声巨响易拉罐蘸起老高没进,
正好有一女生从那经过,老六的罐没喝干净,那可乐溅在那女生脸上了。
开始,我和老六赶忙向她道歉,可那妞儿得理不让人,一个劲的骂人,老六火了和她对骂起来,我长那么大还头次看见,俩人一直对骂还不带停,对骂了大概一个多钟头,突然那女生指着自己的脸说:你行?你有本事把它给我舔干净!
我和老六都还没反映过来,老六还颇不情愿,那女生接着说:你枉子还是男人!老六一下火了,一把抱过她,搬过她的头,自己头凑过去,伸出舌头两下就舔完了!老六还对那女生说:好了!完了!哼!
老
六转个身来,看见我瞠目结舌的样子,一下我们俩都大笑起来,那女生也回过神来,蹲在地上大哭,看情形不妙,我俩赶快给人家说好话、赔不是,后来她是怎么不
哭我记不得了,当晚,老六还请那女生和我的客,晚上老六还送那女生回宿舍,几天后那女生成了老六的女友,我们宿舍最早谈恋爱的!
后来我问那丫头当时情景,她说当时她骂晕了,才闹出得大笑话。不过,她觉得老六不错,也就将错就错。从老六那事儿以后,我们宿舍凡是问谈恋爱有无亲密举动,都问舔了没
1、什么动物最没有方向感?答案:麋鹿(迷路)
2、什么动物猜拳永远不会有输赢?答案:螃蟹
3、什么动物最容易摔倒?答案:狡猾的狐狸(脚滑)
4、什么鸡没有翅膀?答案:田鸡
5、如果动物园失火了,最先逃出来的是哪一种动物?答案:人
6、农夫养10头牛,只有19只角,为什么?答案:有一只犀牛
7、什么动物能贴在墙上?答案:海豹(海报)
8、让九匹马平均分配到十个马圈里,并且每个圈里的马的数目都一样,怎么分才好?答案:把九匹马放到一个马圈里,再在这个马圈的外头套上九个圈
9、有一头头朝北的牛,它向右转原地转三圈,然后向后转原地转三圈,接着再往右转,这时候它的尾巴朝哪?答案:朝地
10、“水蛇”“蟒蛇”“青竹蛇”哪一个比较长?答案:青竹蛇
11、请问谁是百兽之王?答案:动物园园长
12、有一群小鸡在菜地里乱窜 ,小鸡是谁的?答案:鸡妈妈的
13、一溜三棵树,把十匹马来栓,栓单不栓双,问,每棵树栓几匹马呢?答案:一、六、三棵树!当然是每棵栓一匹了!
14、什么东西被你弄死了然而还是你自己流的血?答案:蚊子
15、一头公牛加一头母牛,猜三个字。答案:两头牛
16、一头公牛加一头母牛,猜五个字。答案:还是两头牛
17、森林中有十只鸟,小开枪打死了一只,其它九只却都没有飞走,为什么?答案:因为是鸵鸟
18、一只羊在吃草,一只狼从旁边经过,但没有吃羊,猜一种动物。答案:虾
19、又一只狼经过,还是没有吃羊,猜一种动物。答案:对虾
20、羊经过狼旁边对着狼大喊大叫,狼还是没吃羊,猜一种动物。答案:龙虾
21、猎豹从北京跑到上海走哪条路最快?答案:地图上的路
22、两米长的跑道,七寸长的红螃蟹和五寸长的黑螃蟹赛跑,谁先到终点?答案:黑螃蟹(红螃蟹是煮熟了的)
23、两只狗赛跑,甲狗跑得快,乙狗跑得慢,跑到终点时,哪只狗出汗多?答案:狗不会出汗
24、青蛙为什么能跳得比树高?答案:因为树不会跳
25、一个人吃了一大口西瓜,然后站在门外吐。为什么?打一动物。答案:兔子(吐耔)
26、你喝完酒站在马路边上向大地怒吼,猜一动物。答案:野兔
27、狗让猫做饭---猜一动物。答案:熊猫
28、猫不做---猜一动物。答案:白熊
29、狗做了---猜一动物。答案:狗熊
30、一只小狗经常不洗澡,为什么不生虱子?答案:狗只会生小狗狗 31、什么动物天天熬夜?答案:大熊猫,瞧它那黑眼圈
32、大雁为什么要飞去南方过冬?答案:因为用走的太慢
33、猴子每分钟能掰一个玉米,在果园里,一只猴子5分钟能掰几个玉米?答案:一个也没有,果园里没有玉米
34、鱼缸里有十条鱼,死掉了一条问还有几条?答案:十条,死鱼也是鱼
35、哪种贼被抓住后可以马上处死刑?答案:乌贼
36、一只饿猫从一只胖老鼠身旁走过,为什么那只饥饿的老猫竟无动于衷继续走它的路,连看都没看这只老鼠?答案:因为那是只瞎猫
37、哪种动物像猫一样大小,和老虎一个长相?答案:小老虎
38、你和猪站在一起,猜一种动物。答案:象
39、大灰狼拖走了羊妈妈,小羊为什么也不声不响地跟了去?答案:小羊在妈妈的肚子里
40、北极里一种动物,四条腿背上两个峰,猜一种五个字的动物。答案:迷失的骆驼
41、老师说蚯蚓切成两段仍能再生,小东照老师话去做,蚯蚓却死了,为什么?答案:因为他是竖着切的
42、驯狗场选中一狗,打一动物。答案:猫
43、猪从猪圈里跑了出来,应该怎么办呢?打一台湾男歌星和一香港男歌星。答案:王力宏,李克勤
44、苹果树上有2个苹果,现在过来三只小猴,请问10分钟树上有几个苹果,几只猴?答案:苹果2个,猴子一个也没了
45、小鸡,小狗,小猫一起背书,老师会叫他们其中谁先来背呢?答案:小狗(旺旺仙贝)
46、多啦A梦为什么喜欢帮助其他人呢?答案:伸出援(圆)手
47、一只蚂蚁不小心从飞机上掉了下来,就死了。它是怎么死的?答案:饿死的
48、有一个猎人到森林里去打猎,他随身只
带了3把飞刀,他坚信世间没有任何东西能受他3把飞刀还不死,他走呀走遇到了一只会吃人的猩猩,猩猩捶着胸膛朝他逼近,他掷出了第一把飞刀,可是却被猩猩
的左手接住;他又掷出了第2把飞刀,没想到又被猩猩的右手接住;最后他掷出了那最后一把飞刀;霎时间飞沙走石,疾风乱雨,完了!最后的飞刀居然被可恶的畜
生用嘴含住,勇敢的猎人绝望了;可恶的猩猩得意的又叫又吼;结局是---猩猩死了。为什么?答案:猩猩吼叫时会用两手捶胸,自己捶死了
49:加菲猫最喜欢的狗是什么狗?答案:热狗
50、一只公壁虎和一只母壁虎怕在墙上谈恋爱。母壁虎说了一句话,是个叠声词。说完后,只听“叭”的一声,公壁虎掉了下来,问:母壁虎说了什么?答案:抱抱