</pre><pre name="code" class="java">package com.example.fragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.util.DisplayMetrics;<img src="" alt="" />
import android.view.Menu;
import android.widget.FrameLayout;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
/**
*
* @author 洋洋
* 项目名称:
* 类 名 称:程序入口
* 类 描 述:FragmentActivity
* 创 建 人:流星雨 Copyright
* 创建时间:2014-12-2下午3:35:36
*(c)流星雨-版权所有
*/
public class MainActivity extends FragmentActivity {
/* 视图 */
private FrameLayout fl;
/* 适配器 */
private FragmentAdapter adapter;
/* 控件 */
private RadioGroup rg;
/* 手机宽度 */
public static int width;
public static int getWidth() {
return width;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/* 先找到碎片模块保存起来 才能被加载 */
/* 初始化ui */
findViews();
/* 初始化监听 */
setListeners();
}
/**
* 初始化监听
*/
private void setListeners() {
// 主菜单控件事件
rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
int index = 0;
switch (checkedId) {
// 首页
case R.id.rb_home:
index = 0;
break;
// 新闻展示
case R.id.rb_near:
index = 1;
break;
// 产品分类
case R.id.rb_my:
index = 2;
break;
// 关于我们
case R.id.rb_more:
index = 3;
break;
}
// 创建Fragment 映射 赋值
Fragment fragment = (Fragment) adapter.instantiateItem(fl,
index);
// 具体的 覆盖 赋值
adapter.setPrimaryItem(fl, index, fragment);
// 提交具体的映射
adapter.finishUpdate(fl);
}
});
}
/**
* 初始化ui
*/
private void findViews() {
// FrameLayout 视图布局
fl = (FrameLayout) findViewById(R.id.context);
// 控件
rg = (RadioGroup) findViewById(R.id.rg);
// 创建配置
adapter = new FragmentAdapter(this.getSupportFragmentManager());
// 创建Fragment 映射 赋值
Fragment fragment = (Fragment) adapter.instantiateItem(fl, 0);
// 具体的 覆盖 赋值
adapter.setPrimaryItem(fl, 0, fragment);
// 提交具体的映射
adapter.finishUpdate(fl);
}
}
package com.example.fragment;
import fragment.yzj.AboutMe;
import fragment.yzj.ContactMe;
import fragment.yzj.NewsDynamic;
import fragment.yzj.ProductClassify;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
/**
*
* @author 洋洋
* 项目名称:
* 类 名 称:fragment适配器
* 类 描 述:fragment适配器
* 创 建 人:流星雨 Copyright
* 创建时间:2014-12-2下午3:35:36
*(c)流星雨-版权所有
*/
public class FragmentAdapter extends FragmentStatePagerAdapter {
public FragmentAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int postiton) {
Fragment fragment;
switch (postiton) {
case 0:
//主页 刚刚位置有点变动所以命名 我没有改过来 你自己看看
fragment = new ContactMe();
break;
case 1:
//附件
fragment = new NewsDynamic();
break;
case 2:
//我的
fragment = new ProductClassify();
break;
case 3:
//更多
fragment = new AboutMe();
break;
default:
//没有选中的时候默认选中主页
fragment = new ContactMe();
break;
}
return fragment;
}
/**
* 有多少个模块 这里我定义死了 你要可以从activity那边传过来
*/
@Override
public int getCount() {
return 4;
}
}
package fragment.yzj;
import com.example.fragment.R;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
/**
* @author 洋洋
* 项目名称:洋紫荆apk
* 类 名 称:Fragment
* 类 描 述:关于我们
* 创 建 人:流星雨
* Copyright (c) 流星雨-版权所有
*/
public class AboutMe extends Fragment{
//用于返回视图 因为Fragment 没有当前的this
private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view=inflater.inflate(R.layout.about_me, null);
return view;
}
/**
* 如果不重新此方法 Fragment就会被覆盖
*/
@Override
public void setMenuVisibility(boolean menuVisible) {
super.setMenuVisibility(menuVisible);
//判断界面是否隐藏和显示
if (this.getView() != null) {
this.getView().setVisibility(menuVisible ? View.VISIBLE : View.GONE);
}
}
}
package fragment.yzj;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
*
* @author 洋洋
* 项目名称:
* 类 名 称:fragment适配器
* 类 描 述:fragment适配器
* 创 建 人:流星雨 Copyright
* 创建时间:2014-12-2下午3:35:36
*(c)流星雨-版权所有
*/
public class ContactMe extends Fragment {
/*用于返回视图 因为Fragment 没有当前的this*/
private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(com.example.fragment.R.layout.contact_me, null);
return view;
}
/**
* 如果不重新此方法界面将会被覆盖
*/
@Override
public void setMenuVisibility(boolean menuVisible) {
super.setMenuVisibility(menuVisible);
// 判断界面是否隐藏
if (this.getView() != null) {
this.getView()
.setVisibility(menuVisible ? View.VISIBLE : View.GONE);
}
}
}
package fragment.yzj;
import com.example.fragment.R;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
*
* @author 洋洋
* 项目名称:
* 类 名 称:fragment适配器
* 类 描 述:fragment适配器
* 创 建 人:流星雨 Copyright
* 创建时间:2014-12-2下午3:35:36
*(c)流星雨-版权所有
*/
public class NewsDynamic extends Fragment {
/*用于返回视图 因为Fragment 没有当前的this*/
private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.news_dynamic, null);
return view;
}
/**
* 如果不重新此方法Fragment将会被覆盖
*/
@Override
public void setMenuVisibility(boolean menuVisible) {
super.setMenuVisibility(menuVisible);
// 判断界面是否隐藏和显示
if (this.getView() != null) {
this.getView()
.setVisibility(menuVisible ? View.VISIBLE : View.GONE);
}
}
}
package fragment.yzj;
import com.example.fragment.R;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
*
* @author 洋洋
* 项目名称:
* 类 名 称:fragment适配器
* 类 描 述:fragment适配器
* 创 建 人:流星雨 Copyright
* 创建时间:2014-12-2下午3:35:36
*(c)流星雨-版权所有
*/
public class ProductClassify extends Fragment {
/* 创建视图方便调用 */
private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.product_classify, null);
return view;
}
/**
* 如果不重此方法界面将会被覆盖
*/
@Override
public void setMenuVisibility(boolean menuVisible) {
super.setMenuVisibility(menuVisible);
// 判断界面是否隐藏和显示
if (this.getView() != null) {
this.getView()
.setVisibility(menuVisible ? View.VISIBLE : View.GONE);
}
}
}
<RelativeLayout 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:background="#ffffff" >
<!--头部 -->
<!--中间部分 -->
<FrameLayout
android:id="@+id/context"
android:layout_width="match_parent"
android:layout_height="wrap_content"
></FrameLayout>
<!--底部 -->
<RadioGroup
android:id="@+id/rg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#08cafb"
android:paddingTop="10dp"
android:orientation="horizontal"
>
<RadioButton
android:id="@+id/rb_home"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="true"
android:button="@null"
android:drawableTop="@drawable/home_ic_tab_selector"
android:text="主页"
android:textColor="@drawable/text_ic_tab_selector"
android:gravity="center"
/>
<RadioButton
android:id="@+id/rb_near"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:drawableTop="@drawable/near_ic_tab_selector"
android:text="附件"
android:textColor="@drawable/text_ic_tab_selector"
android:gravity="center"
/>
<RadioButton
android:id="@+id/rb_my"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:drawableTop="@drawable/my_ic_tab_selector"
android:text="我的"
android:textColor="@drawable/text_ic_tab_selector"
android:gravity="center"
/>
<RadioButton
android:id="@+id/rb_more"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:drawableTop="@drawable/more_ic_tab_selector"
android:text="更多"
android:textColor="@drawable/text_ic_tab_selector"
android:gravity="center"
/>
</RadioGroup>
</RelativeLayout>