?
项目来源: https://github.com/xuwj/ToolbarDemo#userconsent#
?
一、V7包升级问题
?
折腾好久,终于解决 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 的错误问题。。。
?
?
解决策略:FQ,然后在sdkManager里面下载最新的support包,一定要是最新的。
然后引入到工程中来。
?
?
结构如下:
还有一点一定要注意,appcompat所需要的sdk也必须是最新的,不然不支持。最少21,刚刚我用19,里面的一些属性直接报错。切记。。。。
?
二、全局主题、样式
在application当中声明主题,表明是全局的概念,所有的activity都可以具有此属性。
Eclipse当中,在manifest中有版本控制,最小,目标版本等。
As当中,现在在build.gradle当中,如下图所示。而且,dependencies依赖于上面的compileSdkVersion buildToolsVersion (搭配相同)。
?
三、一些概念的理解
Widget 我们可以认为是一个部件。
?
PagerSlidingTabStrip :它是一个ViewPager 指示器,比ViewPageIndicator要好用的多,tab直接的过渡更加自然。
Toolbar是一种可定制的标题栏,actionbar比较死板,没多少人用。
Viewpager 和listview类似,一般我们将viewPager + fragmentPagerAdapter联合起来使用。
?
参考资料: Android中Styles、Themes、attrs介绍 http://www.open-open.com/lib/view/open1392260685837.html
Sytles 类似于css,把功能实现与外观分离开。Theme可由style来定义,放在application当中有全局的作用。
Attrs 是自定义参数,我们可以用它来对自定义属性进行定义。
?
一些控件假如不在xml中进行定义,我们就需要自己实例化,比如ImageButton tab = new ImageButton(getContext());
?
V7包的属性与android本身的属性不一样:
比如: android:colorPrimary ,这个是错误的,因为这个属性必须sdk21以上才支持,所以有了v7包。我们需要把android去掉才可以。
?
四、toolBarSytle无法找到解决方案
as出现这个问题,如何解决
?
错误竟然是我多定义了styles,原以为的适配用的,看来是理解错误。
必须是这样,我个人觉得同时有styles21 和 sytles 同时存在的时候,先适配sytles21,而我在sytles里面定义的东西在toolbar里面检索不到,所以出错。
所以解决方案:要么两个都定义,要么删掉一个。
?
五.Current min is xxxx ,call requires API xxx ?
所有这些问题都是因为兼容包的问题,因为我们默认导入的包都是低版本的包,但是随着版本的提高,我们需要适配的机型
比如说minSdk = 8,而上面需要的最小SDK版本是11.这个时候,我们必须引入v4包来解决问题。当然,有些高版本API可能还需要v7或者v13来做适配。
将刚刚的Fragmeng改为下面的 版本即可。
?
六、在fagment里面如何获取activity
必须要强转 MainActivity main = (MainActivity)getActivity(); //必须强转
最好是在onttach里面。
?
七、params 其实有多个,每一种布局里面有一套操作,都有相应的布局参数。Params
?
?
八、IM当中的聊天界面关系嵌套
AttachController类定义了下面的container
SessBottomContrller 定义了一些表情框等
?
FragChatViewController 界面都在这 body + bottom
?
FragChat fragment需要调用上面的view
?
真正的Activity,调用上面的fragment
?
?
输入文字,覆盖container的时候,我们必须让container消失才行。
?
?
九、不同的IDE可能带来的问题:
解决方案:http://jingyan.baidu.com/article/7082dc1c77f979e40a89bddb.html
可能性:端口被占用
?
十、关于软键盘 与 Editview
参考资料:http://blog.sina.com.cn/s/blog_671d2e4f0101f8fd.html#userconsent#
Android_EditView与软键盘相关
想解决的问题:
??当我按back
变成这样
但是我想要的是这样?
?
不应该有中间 层
?
?
问题探索:
可不可以捕捉键盘的监听事件?
但是事件监听是有优先级的 看看事件分发机制
而是第一次按下back,键盘缩下去,第二层back?view?缩下去。第三次back?刚刚的事件才执行?
我怎么找到按第一个back键的时候哪个方法在执行???
?
参考: http://blog.csdn.net/lmj623565791/article/details/38960443 事件分发
仿微信的项目: http://www.apkbus.com/forum.php?mod=viewthread&tid=242633&highlight=%E5%BE%AE%E4%BF%A1
?
?
?
十一、只有在toolbar上面设置的菜单才会有图标。
Toolbar说白了就是标题栏,导航栏一般用 PagerSlidingTabStrip (导航栏) + viewPage(类似listview的控件)做
?
覆盖与不覆盖的区别:
添加视图:
app:actionViewClass="android.support.v7.widget.SearchView"
?
?
menu菜单详解: http://www.open-open.com/lib/view/open1373981182669.html
Android UI开发详解之ActionBar
?
其他资料: http://blog.csdn.net/lmj623565791/article/details/45303349
Android 5.x Theme 与 ToolBar 实战
http://blog.csdn.net/lmj623565791/article/details/42160391
?Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI
http://doc.okbase.net/HarryWeasley/archive/121430.html
PagerSlidingTabStrip介绍及使用,让ViewPager更绚丽
?