Fragment的应用,之前两个demo的地址
来源:互联网 发布:压缩文件夹 linux 编辑:程序博客网 时间:2024/06/07 01:15
参考文章
Fragment详解:
http://blog.csdn.net/t12x3456/article/details/8101030
Fragment是activity的界面中的一部分或一种行为。
你可以把多个Fragment们组合到一个activity中来创建一个多面界面,并且你可以在多个activity中重用一个Fragment。
你可以把Fragment认为模块化的一段activity。
来个最直观的图!
底下的导航栏就是用fragment实现的。
注意:在Android3.0版本下使用fragment时,要添加兼容性jar包!
这在这里只做一个简单的应用。
1.建立一个空白活动,界面如下:
空白处是一个FrameLayout:
底部导航栏:
新建maintab01:
无关代码就不放了,具体可以参考上一篇文章。
3.在Activity中管理fragment:
至此,这个最简单的fragment例子就完成了。
这里只能通过点击导航栏来切换tab,而像微信那样滑动切换的做法,以后写吧。
Fragment详解:
http://blog.csdn.net/t12x3456/article/details/8101030
Fragment是activity的界面中的一部分或一种行为。
你可以把多个Fragment们组合到一个activity中来创建一个多面界面,并且你可以在多个activity中重用一个Fragment。
你可以把Fragment认为模块化的一段activity。
来个最直观的图!
底下的导航栏就是用fragment实现的。
注意:在Android3.0版本下使用fragment时,要添加兼容性jar包!
这在这里只做一个简单的应用。
1.建立一个空白活动,界面如下:
空白处是一个FrameLayout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <FrameLayout android:id="@+id/id_content" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" > </FrameLayout> <include layout="@layout/bottom_bar"/></LinearLayout>
底部导航栏:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ly_main_tab_bottom" android:layout_width="fill_parent" android:layout_height="55dp" android:layout_alignParentBottom="true" > <LinearLayout android:layout_width="fill_parent" android:layout_height="55dp" > <LinearLayout android:id="@+id/id_tab_bottom_weixin" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:descendantFocusability="beforeDescendants" android:gravity="center" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="首页" /> </LinearLayout> <LinearLayout android:id="@+id/id_tab_bottom_friend" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:descendantFocusability="beforeDescendants" android:gravity="center" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="百度地图" /> </LinearLayout> <LinearLayout android:id="@+id/id_tab_bottom_contact" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:descendantFocusability="beforeDescendants" android:gravity="center" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="优惠券" /> </LinearLayout> <LinearLayout android:id="@+id/id_tab_bottom_setting" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:descendantFocusability="beforeDescendants" android:gravity="center" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="高德地图" /> </LinearLayout> </LinearLayout></RelativeLayout>
新建maintab01:
public class MainTab01 extends Fragment{private WebView mWebView;private Handler mHandler = new Handler();@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){View view=inflater.inflate(com.example.activity.R.layout.main_tab_01, container, false); mWebView = (WebView) view.findViewById(R.id.webView); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); mWebView.setWebChromeClient(new MyWebChromeClient()); mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo"); mWebView.loadUrl("file:///android_asset/demo.html");return view;}}
无关代码就不放了,具体可以参考上一篇文章。
3.在Activity中管理fragment:
public class FragmentMainActivity extends Activity implements OnClickListener,OnTranDataListener{private MainTab01 mTab01;private MainTab02 mTab02;private MainTab03 mTab03;private MainTab04 mTab04;/** * 底部四个按钮 */private LinearLayout mTabBtnWeixin;private LinearLayout mTabBtnFrd;private LinearLayout mTabBtnAddress;private LinearLayout mTabBtnSettings;/** * 用于对Fragment进行管理 */private FragmentManager fragmentManager;@SuppressLint("NewApi")@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.fragment_main);initViews();fragmentManager = getFragmentManager();setTabSelection(0);}private void initViews(){mTabBtnWeixin = (LinearLayout) findViewById(R.id.id_tab_bottom_weixin);mTabBtnFrd = (LinearLayout) findViewById(R.id.id_tab_bottom_friend);mTabBtnAddress = (LinearLayout) findViewById(R.id.id_tab_bottom_contact);mTabBtnSettings = (LinearLayout) findViewById(R.id.id_tab_bottom_setting);mTabBtnWeixin.setOnClickListener(this);mTabBtnFrd.setOnClickListener(this);mTabBtnAddress.setOnClickListener(this);mTabBtnSettings.setOnClickListener(this);}@Overridepublic void onClick(View v){switch (v.getId()){case R.id.id_tab_bottom_weixin:setTabSelection(0);break;case R.id.id_tab_bottom_friend:setTabSelection(1);break;case R.id.id_tab_bottom_contact:setTabSelection(2);break;case R.id.id_tab_bottom_setting:setTabSelection(3);break;case R.id.huodong:setTabSelection(2);break;case R.id.quan:Intent intent=new Intent(FragmentMainActivity.this, MyPreferential.class);startActivity(intent);break;default:break;}}/** * 根据传入的index参数来设置选中的tab页。 * */@SuppressLint("NewApi")public void setTabSelection(int index){// 开启一个Fragment事务FragmentTransaction transaction = fragmentManager.beginTransaction();// 先隐藏掉所有的Fragment,以防止有多个Fragment显示在界面上的情况hideFragments(transaction);switch (index){case 0:if (mTab01 == null){// 如果MessageFragment为空,则创建一个并添加到界面上mTab01 = new MainTab01();transaction.add(R.id.id_content, mTab01);} else{// 如果MessageFragment不为空,则直接将它显示出来transaction.show(mTab01);}break;case 1:if (mTab02 == null){mTab02 = new MainTab02();transaction.add(R.id.id_content, mTab02);} else{transaction.show(mTab02);}break;case 2:if (mTab03 == null){mTab03 = new MainTab03();transaction.add(R.id.id_content, mTab03);} else{transaction.show(mTab03);}break;case 3:if (mTab04 == null){mTab04 = new MainTab04();transaction.add(R.id.id_content, mTab04);} else{transaction.show(mTab04);}break;}transaction.commit();}/** * 将所有的Fragment都置为隐藏状态。 * * @param transaction * 用于对Fragment执行操作的事务 */@SuppressLint("NewApi")private void hideFragments(FragmentTransaction transaction){if (mTab01 != null){transaction.hide(mTab01);}if (mTab02 != null){transaction.hide(mTab02);}if (mTab03 != null){transaction.hide(mTab03);}if (mTab04 != null){transaction.hide(mTab04);}}}
至此,这个最简单的fragment例子就完成了。
这里只能通过点击导航栏来切换tab,而像微信那样滑动切换的做法,以后写吧。
整个项目的代码可以在这里看到:
https://code.csdn.net/u012591761/mapandjs/tree/master
里面包含了之前的地图还有js通信的demo。 0 0
- Fragment的应用,之前两个demo的地址
- Fragment的两个子类ListFragment和DialogFragment的应用Demo
- libevent的vs2013的源码工程 以及两个demo地址
- fragment的入门DEMO
- Fragment的demo
- Android学习小Demo(20)关于Fragment的应用
- 两个fragment的切换
- 两个fragment的跳转
- Fragment与Fragment的通信交互Demo
- jqgrid的demo地址
- jqgrid的demo地址
- Activity和Fragment之前的通信
- Fragment与Activity之前的通信已经Fragment的生命周期
- 翻到很久之前写的一个demo。
- 自己在之前做两个项目中遇到多线程并发访问如何解决的一个简单demo程序
- 两个Fragment之间的跳转
- * 获取两个经纬度之前的距离,千米
- 计算两个经纬度之前的距离
- MYSQL5.5 主从同步
- 【Lua游戏开发】os库-时间函数
- hdu_1017_A Mathematical Curiosity(模拟)
- 布局做单选效果,选择金额充值(选择换背景,在选择其他的背景还原)
- 三招让windows硬盘资料隐身
- Fragment的应用,之前两个demo的地址
- 使用ngrok让微信公众平台通过80端口访问本机
- ios weak strong图解
- 产生正态分布随机数
- XP之中CPU占用率100%解决
- 习大大反腐火已烧到技术出身人员——多个信息中心干部被查
- 自定义dialog 满足各种个性的需求
- iOS—NSNotificationCenter
- 通过问答方式学习JDBC