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

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

概述一:先看一下框架搭建后的效果图    ,二:框架结构(1)底部导航栏采用的是:MainActivity(主框架),                  MsgFragment(首页),                  HistoryFragment(历史清单含顶部导航栏),                Mine

一:先看一下框架搭建后的效果图

     ,


二:框架结构

  (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             @OverrIDe28             public voID onTabSelected(TabLayout.Tab tab) {29                 vIEwPager.setCurrentItem(tab.getposition(), false);30             }31 32             @OverrIDe33             public voID onTabUnselected(TabLayout.Tab tab) {34 35             }36 37             @OverrIDe38             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.CustomToolbar13         androID:ID="@+ID/bar1"14         androID:layout_wIDth="match_parent"15         androID:layout_height="wrap_content"/>16  <VIEw17      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.VIEwPager23         androID:ID="@+ID/vIEw_pager"24         androID:layout_wIDth="match_parent"25         androID:layout_height="0dip"26         androID:layout_weight="1" />27 28     <VIEw29         androID:layout_wIDth="match_parent"30         androID:layout_height="0.5dip"31         androID:background="@color/line_gray" />32 33     <androID.support.design.Widget.TabLayout34         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 (i) { 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     @OverrIDe22     public int getCount() {23         return 3;24     }

 

四:自定义标题栏的实现

关键代码:

toolbar.xml:

 1  <ImageVIEw 2         androID:layout_wIDth="wrap_content" 3         androID:layout_height="wrap_content" 4  5  6         androID:src="@mipmap/ic_launcher" 7         androID:layout_gravity="left" 8         /> 9     <TextVIEw10         androID:ID="@+ID/tv_Title"11         androID:layout_wIDth="wrap_content"12         androID:layout_height="wrap_content"13         androID:text="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      <TextVIEw22          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="visible"30          />

 

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

 

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

 

总结

以上是内存溢出为你收集整理的Android项目开发之--------地铁时光机(一,搭建主框架)全部内容,希望文章能够帮你解决Android项目开发之--------地铁时光机(一,搭建主框架)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1118964.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存