Archive for 九月 2013

ViewPager+Fragment 划屏时,Fragment状态丢失的解决

使用ViewPager和Fragment划屏时,当一个fragment被隐藏,它很有可能被回收,但如果PagerAdapter用的是FragmentPagerAdapter,回收时只会调用onDestroyView,而不会调用onDestroy.So,当下次再返回的时候,因为其实这个Fragment并没有被Destory,所以不会调onCreate,但会调onCreateView重新载入View,导致界面上显示的都是初始的状态.解决方法,使用FragmentStatePagerAdapter代替FragmentPagerAdapter,在回收时就会调用onDestroy.

TextView设置 android:ellipsize=”marquee”后不滚动的问题

若要让TextView里的文本滚动,必须满足以下几个因素:
1,TextView里文本宽度超过TextView的宽度
2,android:ellipsize="marquee"
3,只有在TextView获取到焦点时,才会滚动.所以加上android:focusableInTouchMode="true" android:focusable="true"
最容易忽略的是第三条.
滚动重复次数设置:
android:marqueeRepeatLimit="marquee_forever"

LevelListDrawable使用示例

LevelListDrawable是Drawable的一个子类,顾名思义,这是一组图片,根据不同的Level,确定显示哪一张.比如说显示信号的图标,其实每个信号等级都是一张不同的图片,如果不用LevelListDrawable,那么需要根据信号强度判断切换显示指定的图标,而使用LevelListDrawable后,只需要setLevel就可以了. Continue reading ‘LevelListDrawable使用示例’ »

正则表达式 向后引用

向后引用用于重复搜索前面某个分组匹配的文本.比如查询中文AABB式的成语:


		Pattern p=Pattern.compile("([\u4e00-\u9fa5])\\1([\u4e00-\u9fa5])\\2");
		Matcher matcher=p.matcher("sfdasfd轰轰烈烈asdfsaf高高兴兴sfasfd");
		while(matcher.find())
		{
			System.out.println(matcher.group(0));
		}

\\1表示重复第一个括号里的内容,\\2表示重复第二个括号里的内容
输出"轰轰烈烈"和"高高兴兴".

Thinkphp使用mongodb数据库时,or查询

有个项目用了mongodb数据库,查询条件有and也有or,按Thinkphp官方手册,使用复合查询(_complex),getLastSql输出查询语句,发现查询条件是空的.用字符串模式查询(_string),请求字符串查询(_query)无法满足需求.估计用mongodb的用户不多,thinkphp官方对这方面支持也不够.打开thinkphp的mongodb驱动,Thinkphp/Extend/Driver/Db/DbMongo.class.php,找到protected function parseThinkWhere($key,$val)方法,可以发现,switch里没有_complex,也就是说,Thinkphp使用mongodb时,根本不支持复合查询.加上: Continue reading ‘Thinkphp使用mongodb数据库时,or查询’ »

css 背景自动缩放

默认情况下,背景属性是平铺的,如果背景图片较大,而box小,那么就只能显示左上角那块背景.如果要让背景全部显示出来,


.color_checked {
	float: right;
	width: 16px;
	height: 16px;
	background: url(../images/color_check.png) center 0 no-repeat;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	background-size: cover;
}

Css 列表li设置float left后,ul高度不能自适应的解决

因为li要横排,所以必须加上float:left属性,而ul是没有设高度,自适应的.但是现在发现,把li浮动到左侧以后,外层的ul高度没有包裹住li,高度是0.其实,这是因为float以后,没有清除浮动的原因.
所以解决方法是在所有的li后,clear float:


		<ul>
			<li class="radioButton"></li>
			<li class="radioButton"></li>
			<li class="radioButton"></li>
			<div class="clear"></div>
		</ul>

预期的效果是实现了,但是在ul里加个div,Zend studio提示"标记(div)的位置无效。",不是很完美的方法.