记录一:
RadioGroup :
案例1: 需要实现的功能,使用该控件并且在RadioButton与RadioButton的间隔处增加一条分割线。
解决方法:方法1:写一控件来进行间隔(废话,最笨的方法。)方法2:使用RadioGroup自带的android:divider属性来进行分割,貌似关于这个的内容网络少很少,无奈只好自己测试了。原本在listview中有个dividerHeight本想借鉴下,可惜没有这个属性,随查询到dividerPadding从字面上可以理解为间隔,这个应该不是我们需要的。继续查找方法。看到showDividers属性。用快捷方式查看了下有四个属性:none(大家都很熟悉 不显示的意思)、beginning(字面意思从开始的地方开始显示)、end(又开始那应该也有结束)、middle(这的意思差不多是该控件内的子控件之间的间隔,ps:和我们想要的差不多一样了。取之,测试符合要求。)
总结:方法1不多数最笨的方法。方法2:RadioGroup设置两个属性android:divider(你间隔线的样式或者颜色)
showDividers="middle"
案例2:RadioButton自定button属性后,RadioButton与RadioButton之间的间隔问题。
解决方法:layout_margin即可~
ps:关于RadioGroup中dividerPadding这个属性当时我也考虑过,但是进过测试没效果。或者是我缺少什么属性没设置吧。如果有知道的朋友可以在底下留言!
总结:没什么好说的~~~飘过~
记录二:
webView 和 JS交互问题:
4.2以前的注入方法
webview.getSetting().setJavaScriptEnable(true); class JsObject { public String toString() { return "injectedObject"; } } webView.addJavascriptInterface(new JsObject(), "injectedObject");
4.2以后的注入方法:
webview.getSetting().setJavaScriptEnable(true); class JsObject { @JavascriptInterface public String toString() { return "injectedObject"; } } webView.addJavascriptInterface(new JsObject(), "injectedObject");
官方文档说如果你的targetSdkVersion >=17 那么在你和js交互的方法上需要增加@JavascriptInterface这个注解,否则当你执行相应js接口的时候在log中则会提示:has no method '你定义的方法名称' 这样的错误!
记录三:
当你把某个项目:Is Library 这个选项打勾之后,那么这项目就变成一个引用项目(废话谁不知道),并且这时候他gen包中将不在出现该项目引用的第三方项目的R文件。
举个例子:比如项目A的包名称为:org.liuyc.testA 他引用了一个包名称为 org.liuyc.testB项目那么这时候在他gen项目中就会有一个org.liuyc.testB 包,如果这时候我们把项目A 的Is Library打上勾之后,那么当你Clean之后就会发现gen下面的org.liuyc.testB这个包消失了。
记录四:
当我们需要将某个应用主动放置到后台的时候。除了按Home或者切换到其他App。这样之外还可以采用moveTaskToBack来将应用放置到后台运行。方法的具体解释如下:
方法:public boolean moveTaskToBack(boolean nonRoot)
activity里有这个方法,参数说明如下:
nonRoot=false→ 仅当activity为task根(即首个activity例如启动activity之类的)时才生效
nonRoot=true→ 忽略上面的限制
这个方法不会改变task中的activity中的顺序,效果基本等同于home键
应用场景:
比如有些activity诸如引导图之类的,用户在按返回键的时候你并不希望退出(默认就finish了),而是只希望置后台,就可以调这个方法