文档章节

Android项目开发之--------地铁时光机(一,搭建主框架)

SEOwhywhy
 SEOwhywhy
发布于 06/29 16:45
字数 868
阅读 37
收藏 0

Android项目开发之--------地铁时光机(一,搭建主框架)
一:先看一下框架搭建后的效果图

     ,

二:框架结构

  (1)底部导航栏采用的是: MainActivity(主框架),

                   MsgFragment(首页),

                   HistoryFragment(历史清单含顶部导航栏),

                  MineFragment(我的)。

   (2)自定义标题栏(自定义toolbar)

         

三:底部导航栏的实现

主要代码:

MainActivity:

复制代码
 1   //定义底部文字
 2     private final int[] TAB_TITLES = new int[]{
 3             R.string.menu_msg, R.string.menu_history, R.string.menu_mine
 4     };
 5     //定义底部图标
 6     private final int[] TAB_IMGS = new int[]{
 7             R.drawable.tab_main_msg, R.drawable.tab_main_history, R.drawable.tab_main_mine
 8     };
 9     //黄油刀 找到控件
10     @BindView(R.id.view_pager)
11     ViewPager viewPager;
12     @BindView(R.id.tab_layout)
13     TabLayout tabLayout;
14 
15      //定义适配器
16     private PagerAdapter pagerAdapter;
17 
18 
19 
20 
21 //初始化页卡
22     private void initPager() {
23         pagerAdapter = new MainFragmentAdapter(getSupportFragmentManager());
24         viewPager.setAdapter(pagerAdapter);
25         viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
26         tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
27             @Override
28             public void onTabSelected(TabLayout.Tab tab) {
29                 viewPager.setCurrentItem(tab.getPosition(), false);
30             }
31 
32             @Override
33             public void onTabUnselected(TabLayout.Tab tab) {
34 
35             }
36 
37             @Override
38             public void onTabReselected(TabLayout.Tab tab) {
39 
40             }
41         });
42     }
43 
44 
45          //设置页卡显示效果
46     private void setTabs(TabLayout tabLayout, LayoutInflater inflater, int[] tabTitles, int[] tabImgs) {
47         for (int i = 0; i < tabImgs.length; i++) {
48             TabLayout.Tab tab = tabLayout.newTab();
49             View view = inflater.inflate(R.layout.item_main_menu, null);
50             //使用自定义视图,便于修改
51             tab.setCustomView(view);
52             TextView tvTitle = (TextView) view.findViewById(R.id.txt_tab);
53             tvTitle.setText(tabTitles[i]);
54             ImageView imgTab = (ImageView) view.findViewById(R.id.img_tab);
55             imgTab.setImageResource(tabImgs[i]);
56             tabLayout.addTab(tab);
57         }
58     }
复制代码
MainActivity.xml:

复制代码
 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:app="http://schemas.android.com/apk/res-auto"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:orientation="vertical"
 7     tools:context=".MainActivity">
 8 <RelativeLayout
 9     android:layout_width="match_parent"
10     android:layout_height="wrap_content"
11     >
12     <com.example.myapplication.mytoobar.CustomToolbar
13         android:id="@+id/bar1"
14         android:layout_width=www.xcdeyiju.com"match_parent"
15         android:layout_height="wrap_content"/>
16  <View
17      android:layout_width="match_parent"
18      android:layout_height="0.5dp"
19      android:background="@color/line_gray"
20      android:layout_alignBottom="@+id/bar1"></View>
21 </RelativeLayout>
22     <android.support.v4.view.ViewPager
23         android:id="@+id/view_pager"
24         android:layout_width="match_parent"
25         android:layout_height="0dip"
26         android:layout_weight="1" />
27 
28     <View
29         android:layout_width="match_parent"
30         android:layout_height=www.yuchenghd.com"0.5dip"
31         android:background="@color/line_gray" />
32 
33     <android.support.design.widget.TabLayout
34         android:id="@+id/tab_layout"
35         android:layout_width="match_parent"
36         android:layout_height="100dp"
37         app:tabIndicatorHeight="0dip" />
38 
39    </LinearLayout>
复制代码
Adapter:

复制代码
 1  @Override
 2     public Fragment getItem(int i) {
 3         Fragment fragment = null;
 4         switch (www.yuchengyuLedL.com) {
 5             case 0:
 6                 fragment = new MsgFragment();
 7                 break;
 8             case 1:
 9                 fragment = new HistoryFragment();
10                 break;
11             case 2:
12                 fragment = new MineFragment();
13                 break;
14             default:
15                 break;
16         }
17         return fragment;
18 
19     }
20 
21     @Override
22     public int getCount() {
23         return 3;
24     }
复制代码
 

四:自定义标题栏的实现

关键代码:

toolbar.xml:

复制代码
 1  <ImageView
 2         android:layout_width="www.xingtuyLgw.com wrap_www.yifayuled.cn content"
 3         android:layout_height="wrap_content"
 4 
 5 
 6         android:src="@mipmap/ic_launcher"
 7         android:layout_gravity="left"
 8         />
 9     <TextView
10         android:id="@+id/tv_title"
11         android:layout_width="wrap_content"
12         android:layout_height="wrap_content"
13         android:text=www.whonyLpt.com"SubwayGo"
14         android:textColor="#000000"
15         android:layout_gravity="center"
16         android:singleLine="true"
17         android:visibility="visible"
18         android:textSize="30dp"
19         android:fontFamily="cursive"
20         />
21      <TextView
22          android:layout_width="wrap_content"
23          android:layout_height="wrap_content"
24          android:textSize="20dp"
25          android:textColor="@color/colorPrimaryDark"
26          android:text="设置"
27          android:gravity="center"
28          android:layout_gravity="right"
29          android:visibility=www.xingtuyuLept.com"visible"
30          />
复制代码
 

复制代码
 1 public class CustomToolbar extends Toolbar {
 2 
 3    public CustomToolbar(Context context)www.chaoyuepint.com{
 4       this(context,null);
 5   }
 6     public CustomToolbar(Context www.baiyidLu.com context, AttributeSet attrs) {
 7         this(context, attrs,0);
 8     }
 9     public  CustomToolbar(Context context,www.baitengpt.com AttributeSet attrs,int defStyleAttr){
10        super(context,attrs,defStyleAttr);
11        inflate(context, R.layout.toolbar,this);
12     }
13 }
复制代码
 

五:总结一下,以上代码都是关键代码,至于点击事件的设置,页面数据的传递等等比较基础,就不附上了。下一篇会对线路的最优路径进行选择。

© 著作权归作者所有

SEOwhywhy
粉丝 8
博文 152
码字总数 335019
作品 0
私信 提问
libgdx 环境搭建

一、 开发包下载 1) libgdx 开发包下载: google code(最新 libgdx-0.9.7.zip 2012.11.12) 2) libgdx 主干源码下载: github tags 二、 环境搭建 1) 添加开发jar包 libgdx的android开发...

长平狐
2013/01/06
1K
0
phonegap android开发初体验

最近想学习一下手机上的web app开发,朋友推荐phonegap是一个很不错的跨平台开发框架,下面是初次使用的一些总结总结。 1、开发环境配置 系统要求可以具体参考:http://developer.android.co...

弓影
2011/11/14
1K
2
一年间,我是怎样被开除的。2家公司都开除了我。

确切的说是3家。 2012年4月1日,正式来到北京实习。1500一个月,管吃住。实习2个月后回学校答辩。回来时,要转正。工号007,其实就3个人。我,经理,我同学(他昨天离职的)。当时要签合同,...

韭零后张子游
2013/03/11
4.4K
31
android求职

尹盼 基本信息 性别: 女 出生日期: 1989-10-30 目前所在地: 北京 大兴 电话: 15901440917 电子邮件: 953768578@qq.com QQ: 953768578 求职意向 工作性质: 全职 职位类别: 手机应用开...

蜡笔小溪2
2013/07/27
595
6
第一讲:Android开发环境的搭建

说明,本讲和后续内容讨论的是Android2.2版本. 本讲内容 Android简介 Android开发环境的搭建 测试开发环境,新建Android程序 测试开发环境,运行Android程序 本讲源代码下载链接:Lesson1He...

神勇小白鼠
2011/03/10
763
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部