Android开发——Fragment简单示例(二)制作一个应用菜单导航栏
来源:互联网 发布:淘宝代工酒 编辑:程序博客网 时间:2024/06/01 08:16
我们用的手机app是不是基本上每个打开来在底部那栏都有一个起着导航作用的菜单?我们的Fragment第二个示例就是做一个这样的导航栏。这个代码量比较大,解释就放在注释中了,不多说,上代码。
想想还是先上图比较合适。
MainActivity.java
package com.example.fragment;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageView;public class MainActivity extends FragmentActivity implements OnClickListener{private ImageView tuijian;private ImageView daohang;private ImageView faxian;private ImageView wode;private ImageView lixian;FragmentManager fragmentManager;private TuiJianFragment tuiJianFragment;private DaoHangFragment daoHangFragment;private FaXianFragment faXianFragment;private WoDeFragment woDeFragment;private LiXianGuanKanFragment liXianGuanKanFragment;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tuijian=(ImageView)findViewById(R.id.tuijian);daohang=(ImageView)findViewById(R.id.daohang);faxian=(ImageView)findViewById(R.id.faxian);wode=(ImageView)findViewById(R.id.wode);lixian=(ImageView)findViewById(R.id.lixian);fragmentManager=getSupportFragmentManager();tuijian.setOnClickListener(this);daohang.setOnClickListener(this);faxian.setOnClickListener(this);wode.setOnClickListener(this);lixian.setOnClickListener(this);defaultClick();//设置默认}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubclearClick();switch (v.getId()) {case R.id.tuijian:tuijian.setImageResource(R.drawable.tuijian2);selectFragment(0);break;case R.id.daohang:daohang.setImageResource(R.drawable.daohang2);selectFragment(1);break;case R.id.faxian:faxian.setImageResource(R.drawable.faxian2);selectFragment(2);break;case R.id.wode:wode.setImageResource(R.drawable.wode2);selectFragment(3);break;case R.id.lixian:lixian.setImageResource(R.drawable.lixian2);selectFragment(4);break;default:break;}}private void selectFragment(int index) {// TODO Auto-generated method stub//开启事物FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();//清除上一个Fragment//removeFragment(fragmentTransaction);//hiddenFragment(fragmentTransaction);/* * 我们通过判断就不用每一次新建Fragment */switch (index) {case 0:/*tuiJianFragment=new TuiJianFragment();fragmentTransaction.add(R.id.fl, tuiJianFragment);*/if (tuiJianFragment==null) {tuiJianFragment=new TuiJianFragment();}fragmentTransaction.replace(R.id.fl, tuiJianFragment);break;case 1:/*daoHangFragment=new DaoHangFragment();fragmentTransaction.add(R.id.fl, daoHangFragment);*/if (daoHangFragment==null) {daoHangFragment=new DaoHangFragment();}fragmentTransaction.replace(R.id.fl, daoHangFragment);break;case 2:/*faXianFragment=new FaXianFragment();fragmentTransaction.add(R.id.fl, faXianFragment);*/if (faXianFragment==null) {faXianFragment=new FaXianFragment();}fragmentTransaction.replace(R.id.fl, faXianFragment);break;case 3:/*woDeFragment=new WoDeFragment();fragmentTransaction.add(R.id.fl, woDeFragment);*/if (woDeFragment==null) {woDeFragment=new WoDeFragment();}fragmentTransaction.replace(R.id.fl, woDeFragment);break;case 4:/*liXianGuanKanFragment=new LiXianGuanKanFragment();fragmentTransaction.add(R.id.fl, liXianGuanKanFragment);*/if (liXianGuanKanFragment==null) {liXianGuanKanFragment=new LiXianGuanKanFragment();}fragmentTransaction.replace(R.id.fl, liXianGuanKanFragment);break;default:break;}fragmentTransaction.commit();}//隐藏Fragmentprivate void hiddenFragment(FragmentTransaction fragmentTransaction) {// TODO Auto-generated method stubif (tuiJianFragment!=null) {fragmentTransaction.hide(tuiJianFragment);}if (daoHangFragment!=null) {fragmentTransaction.hide(daoHangFragment);}if (faXianFragment!=null) {fragmentTransaction.hide(faXianFragment);}if (woDeFragment!=null) {fragmentTransaction.hide(woDeFragment);}if (liXianGuanKanFragment!=null) {fragmentTransaction.hide(liXianGuanKanFragment);}}//清除上一次fragmentprivate void removeFragment(FragmentTransaction fragmentTransaction) {// TODO Auto-generated method stubif (tuiJianFragment!=null) {fragmentTransaction.remove(tuiJianFragment);}if (daoHangFragment!=null) {fragmentTransaction.remove(daoHangFragment);}if (faXianFragment!=null) {fragmentTransaction.remove(faXianFragment);}if (woDeFragment!=null) {fragmentTransaction.remove(woDeFragment);}if (liXianGuanKanFragment!=null) {fragmentTransaction.remove(liXianGuanKanFragment);}}//默认进入private void defaultClick() {// TODO Auto-generated method stubtuijian.setImageResource(R.drawable.tuijian2);selectFragment(0);}//清除点击事件private void clearClick() {// TODO Auto-generated method stubtuijian.setImageResource(R.drawable.tuijian1);daohang.setImageResource(R.drawable.daohang1);faxian.setImageResource(R.drawable.faxian1);wode.setImageResource(R.drawable.wode1);lixian.setImageResource(R.drawable.lixian1);}}TuiJianActivity.java
//这是推荐的Fragment,其他四个和这个类似,就不多写了。
package com.example.fragment;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class TuiJianFragment extends Fragment{@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubView view=inflater.inflate(R.layout.tuijian, container,false);return view;}}activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#FFFFFF" tools:context="com.example.fragment.MainActivity" > <FrameLayout android:id="@+id/fl" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#DCDCDC" android:layout_weight="1"/> <View android:layout_width="match_parent" android:layout_height="0.8dp" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:background="#ECECEC" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#FFFFFF"> <ImageView android:id="@+id/tuijian" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:src="@drawable/tuijian1"/> <ImageView android:id="@+id/daohang" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/daohang1"/> <ImageView android:id="@+id/faxian" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/faxian1"/> <ImageView android:id="@+id/wode" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/wode1"/> <ImageView android:id="@+id/lixian" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/lixian1"/> </LinearLayout></LinearLayout>tuijian.xml
//这个也只写一个,其他的照着搬。
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="推荐" android:textSize="80dp"/></RelativeLayout>是不是觉得我们离一个真正的App越来越近了呢?
0 0
- Android开发——Fragment简单示例(二)制作一个应用菜单导航栏
- Android开发——Fragment简单示例(一)认识Fragment
- 使用CSS 制作导航菜单 (二)
- 安卓开发--应用市场的界面制作(一)--viewpager+fragment实现可滑动的底部导航栏
- Feature开发一(制作一个简单的自定义菜单)
- SharePoint开发 - 自定义导航菜单(二)母版页的菜单应用
- Android底部导航栏—RadioButton+Fragment
- Android底部导航栏—FragmentTabHost+Fragment
- android ---Fragment简单示例
- 导航栏《伸缩菜单的制作——水平方向》
- Fragment的应用之底部导航栏的实现(二)之应用ViewPager
- 应用javascript脚本制作二级导航菜单
- 应用JavaScript脚本制作二级导航菜单
- 导航栏下拉菜单制作
- flex 制作导航栏菜单
- Android开发——Fragment、菜单、自定义控件
- Android开发——Fragment知识整理(二)
- 制作一个网站的导航菜单
- 求最大公约数
- 黑马程序员_一个小程序的发现-关于#define与C的内存
- Python文件操作的常用方法
- [Delphi]IDHTTP 获取URL网络异常返回报文
- 【江南】微信小程序从0到1-前言
- Android开发——Fragment简单示例(二)制作一个应用菜单导航栏
- javascript typeof()的用法与运算符用法
- 设计模式-原型模式
- 【LeetCode】Move Zeroes
- 指针
- Ubuntu下的网络配置
- 动态加载案例
- CH9.P175.php与js交互
- Guava工具类学习