【笔记】与Android选项卡一周-创新互联

果然,还是项目驱动的学习方式比较有趣呢。

成都创新互联公司是专业的宁蒗网站建设公司,宁蒗接单;提供成都做网站、网站建设、外贸营销网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行宁蒗网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

这周的学习全部围绕着选项卡,也就是tab。

用到了好多知识点,都不知道从哪里开始啦(≧o≦*)。

    选项卡的制作有很多方法。选项菜单可以用普通的TextView,也可以直接上button。我选择的是TextView,可能更接近网页的思路吧。

先列个清单出来:

  1. selector

  2. Fragment

  3. ViewPager

布局嘛,网上有一堆,就不提了。

1.selector

   选项卡的功能,就是按不同的按钮就能切换到不同页面。作为反馈,按钮总得有点变化,比如换个颜色。实现思路很简单,点击之后换个图标就好了嘛。嗯~o(* ̄▽ ̄*)o,然而在onClick上折腾半天之后,我打开了百度,很快发现了selector这个标签。

Σヽ(Д ; )居然还有这种操作!

   selector用起来很简单,写在drawable目录下:

for_tab1.xml:


  
  

    ic_news和ic_news_act是通过new->Image Asset导入的图标,自动生成各种规格,免去了手动处理图片大小的麻烦。和.9图应该是一样的效果吧(.9图?我没做,我不懂)。

    接着在主界面的TextView写上这句话:

    android:drawableTop="@drawable/for_tab1"

  完工!

    改变item标签内的属性名(比如color),就可以改变其他效果。

2.Fragment

接着就是内容匹配。每个选项卡对应一个内容,一个内容就是一个Fragment。

    android中一个页面可以看作一个Activity,而Fragment只是”碎片“,生命周期不会长于所存在的Activity。查看配置文件AndroidManifest.xml可以发现,Fragment是没有注册的。

   最简单的Fragment,就是重写onCreatView:

View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view =  inflater.inflate(R.layout., container, );
    view;

}

这时冒出了个inflater!你是谁?inflater说我只是个控制器,连接视图和模型。啊~虽然没有明白,但我暂时放过你,小心点inflater,我会盯着你的!

3.ViewPager

    铛~铛~铛~

ViewPager来了!快让开!

    诶,Fragment好像没讲完啊?没办法呀,Fragment没人(activity)权啊,只能靠主子(activity)接济过活╮(╯3╰)╭。ViewPager就是从Activity派来的走狗,啊呸,使者!

  1) ViewPager可说是这个选项卡的核心。每个Fragment是选项卡显示的内容,ViewPager像是内容的容器,同时担任调度的工作。

    布局里的ViewPager看起来就是个普通的标签,但是人家上头有人!

    ViewPager需要一个FragmentAdapter才能工作。

  这是个超简单的实现:

tabFragmentAdapter FragmentPagerAdapter {
    ArrayList  ;
    =;
    tabFragmentAdapter(FragmentManager fm, ArrayList list){
        (fm);
        .= list;
    }
    Fragment getItem(position) {
        .get(position);
    }

    getCount() {
        ;
    }
}

    入口在主界面的Java类中:

 fa = (getSupportFragmentManager(), );
.setAdapter(fa);

fg是填入了所有Fragment的ArrayList。

getSupperFragmentManager()取到了主界面的FragmentManager。

vp是用id获取的布局中的ViewPager。

在tab所在的主界面的Java类的onCreate()中运行,就绑定好了这些Fragment。

2)Listener人呢?给tab们绑定好事件就该你上场了

tabListener View.OnClickListener {
    = ;

    tabListener(index) {
        .= index;
    }

    onClick(View v) {
        .setCurrentItem();
        clearSelect();
        .get().setSelected();
    }
}

index是区分tab的编号;

clearSelect是将tab卡片选择状态重置(用setSelected(false));

tabList里装的是作为tab按钮的TextView;

绑定事件应该会,,,吧?

(i = ; i < .size(); i++) {
    .get(i).setOnClickListener(tabListener(i));
}

似乎很简单,但是我不会告诉你,有一半时间花在了调空指针的BUG!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:【笔记】与Android选项卡一周-创新互联
文章URL:http://cdiso.cn/article/hpiid.html

其他资讯