compile 'comandroidsupport:design:2220'11
Snackbarmake(view, "Snackbar comes out", SnackbarLENGTH_LONG)
setAction("Action", new ViewOnClickListener() {
@Override
public void onClick(View v) {
ToastmakeText(
MainActivitythis,
"Toast comes out",
ToastLENGTH_SHORT)show();
}
})show();TabLayout,可以完成TabPageIndicator的效果 引用TabLayout只要在buildgradle中加入compile 'comandroidsupport:design:2220' 添加一个TabLayout和Viewpager作为上下的布局 Find_tab_Adapterjava 是viewpager的Adapter 采用List来直接加载。
第一阶段的课程一般都是Java编程开发
这一部分应该会和Java后台有相关联的地方,但是比Java后台简单,这一阶段一般要学习Java语法和Java面向对象思想、Java数据结构及算法、GUI界面编程、Java进程与线程、Java网络通信与流、设计模式、数据库和Javaweb,安卓在这一阶段的学习内容看似和后台关联性很大,但是这一部分我们只学习后台一些基础的东西和日后会用到的东西,我们要把基础奠定好。
第二阶段要学习的内容是安卓基础开发
主要的课程内容为Android界面编程(界面编程是Android入门的核心技术,内容纵多,涉及四大组件之一Activity、Wedget、自定义View、事件处理、动画处理、列表、处理、国际化、资源文件、菜单、通知、对话框、Tools/ActionBar/Fragment、样式/主题、Intent。)、进程与线程、服务与广播、数据存储、网络通信、多媒体以及硬件相关,这一阶段更注重安卓入门基础的培训,一定要好好的把握。
接下来学习的内容是一个进阶阶段,主要学习的是安卓的高级开发,一般的课程内容为HOME开发、NDK开发等、地图开发项目发布等等,以上就算是安卓培训的所有学习内容,但是你掌握了学习内容之后还是远远不够的,一般的培训班都会给我们安排项目实战的,这是一种思想的锻炼,我们做什么就要有什么的思维做后台的有做后台的思维,做前端的有做前端的思维,我们学安卓的进行手机端APP开发的就要有安卓的思维,这一阶段也是很重要的,就好比我们在华清远见学完整体的内容之后也参与了一些项目的实战。
我把每一阶段要学习的课程都给你整理了,你可以现在有准备的去看一些基础的视频或者相关的书籍了。
安卓培训视频资料都有
首先,要使用该控件就需要添加designlibrary,在androidstudio(还没有使用Androidstudio的小伙伴们要赶紧更换啦)中添加依赖compile‘comandroidsupport:design:2220’然后再布局文件中使用TabLayout12345紧接着在下面添加ViewPager12345布局文件完成了,接下来去定义ViewPager中的适配器,这里我使用的是Fragment,所以继承自FragmentPagerAdapter,代码如下:publicclassMyPageAdapterextendsFragmentPagerAdapter{ArrayListdatas;ArrayListtitles;publicCommunityPageAdapter(FragmentManagerfm){super(fm);}publicvoidsetData(ArrayListdatas){thisdatas=datas;}publicvoidsetTitles(ArrayListtitles){thistitles=titles;}@OverridepublicFragmentgetItem(intposition){returndatas==nullnull:datasget(position);}@OverridepublicintgetCount(){returndatas==null0:datassize();}@OverridepublicCharSequencegetPageTitle(intposition){returntitles==nullnull:titlesget(position);}}12345678910111213141516171819202122232425262728293031适配器中需要两个数据集合,分配填充Fragment和显示的标题。然后在需要使用的页面添加如下代码:MyPageAdaptermyPageAdapter=newMyPageAdapter(getFragmentManager());ArrayListdatas=newArrayList();datasadd(newAFragment());datasadd(newBFragment());datasadd(newCFragment());myPageAdaptersetData(datas);ArrayListtitles=newArrayList();titlesadd("A");titlesadd("B");titlesadd("C");myPageAdaptersetTitles(titles);12345678910111213现在适配器和数据已经准备好了,那么接下来就是要把数据放入ViewPager中,并使ViewPager和TabLayout相关联:TabLayouttabLayout=(TabLayout)findViewById(Ridtablayout);ViewPagerviewPager=(ViewPager)findViewById(Ridview_pager);//将适配器设置进ViewPagerviewPagersetAdapter(myPageAdapter);//将ViewPager与TabLayout相关联tabLayoutsetupWithViewPager(viewPager);123456关联之后运行发现,其实ViewPager由于预加载机制,导致每次都会提前加载下一个页面,如果页面的数据量大,那么这将会占用大量的内存,有什么法可以只加载当前显示的页面呢看通过查找相关资料发现,有一个方法setOffscreenPageLimit(int),该方法的作用是设置提前加载页面的数量,尝试使用viewPagersetOffscreenPageLimit(0);后发现无效。继续查阅资料后发现,原来这是由于ViewPager的机制导致的,最少需要预加载一个页面,Requestedoffscreenpagelimit0toosmall;defaultingto1,相关问题链接:发现了可以完美解决该问题的方法:在Fragment中有一个方法,setUserVisibleHint,该方法可以获取当前页面的展示情况@OverridepublicvoidsetUserVisibleHint(booleanisVisibleToUser){supersetUserVisibleHint(isVisibleToUser);if(isVisibleToUser){//页面正在展示,在这里加载你的数据}else{//页面没有展示}}12345678910基本到这一步功能已经实现了,但是,还有一些细节需要注意,到底ViewPager滑动的时候为什么会造成TabLayout的标题也随之更换呢看原来setupWithViewPager被调用的时候,执行了下面的代码viewPageraddOnPageChangeListener(newTabLayoutTabLayoutOnPageChangeListener(this));thissetOnTabSelectedListener(newTabLayoutViewPagerOnTabSelectedListener(viewPager));到最后,还有一个问题,那么就是如果我们的标题有多条,导致超出了TabLayout的显示范围,这该如何解决呢看很简单,查阅官方API发现,TabLayout有一个方法是setTabMode,它是用来设置TabLayout的展示模式,而这个方法接受两个常量,MODE_SCROLLABLE以及MODE_FIXED,显而易见,当我们设置为MODE_SCROLLABLE它就能自动根据标题的数量,滑动展示啦,功能到这里就完美实现了!有时候在一些子页面或者内容页面,不需要显示ActionBar的标题栏图标。可用如下方式进行设置。首先获取到ActionBar对象ActionBaractionBar=getActionBar();使用android:logo属性。不像方方正正的icon,logo的图像不会有任何宽度限制。logo图像典型的给你的APP提供品牌。当有Logo的时候,可以隐藏label。默认的,ActionBar使用Activity的android:icon属性,还有一致的android:label属性。隐藏Label标签:actionBarsetDisplayShowTitleEnabled(false);隐藏logo和icon:actionBarsetDisplayShowHomeEnabled(false);设置标题,一个主标题,一个子标题actionBarsetSubtitle(“Inbox”);actionBarsetTitle(“Label:important”);默认的ActionBar的背景颜色取决于activity指定的Theme。HoloTheme它的背景是黑色的。可以指定任意的Drawabel对象作为背景,使用setBackgroundDrawable方法:ActionBaractionBar=getActionBar();Resourcesr=getResources();DrawablemyDrawable=rgetDrawable(Rdrawablegradient_header);actionBarsetBackgroundDrawable(myDrawable);注意:ActionBar会自动缩放你的背景图覆盖模式默认情况下,actionBar放在activity的顶部,且作为activity布局的一部分。设置成为覆盖模式后,actionBar相当于漂浮在activity之上,不干预activity的布局。设置如下:@OverridepublicvoidonCreate(BundlesavedInstanceState){superonCreate(savedInstanceState);getWindow()requestFeature(WindowFEATURE_ACTION_BAR_OVERLAY);setContentView(Rlayoutmain);}欢迎分享,转载请注明来源:内存溢出
评论列表(0条)