Viewpaer+fragment

1、碎片的动态切换:
1-1:页面填写
<FrameLayout
android:id="@+id/fl_layout"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<fragment
android:id="@+id/fragment_two"
android:name="com.firefly.fragment.FragmentTwo"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
<fragment
android:id="@+id/fragment_one"
android:name="com.firefly.fragment.FragmentOne"
android:layout_width="match_parent"
android:layout_height="50dp"/>
1-2:在Activity中新建碎片
FragmentTwo f2 = new FragmentTwo();
……
1-3:新建FragmentManager管理碎片
1-4:点击后切换
fm.beginTransaction().replace(R.id.fl_layout, f3).commit();

2、加入ViewPager,实现滑动切换与点击切换
2-1:在xml文件中写入<android.support.v4.view.ViewPager/>
2-2:在Activity文件中写入它的ViewPager及List<Fragment>
ViewPager pager;
List<Fragment> list = new ArrayList<Fragment>();
list.add(new FragmentTwo());
list.add(new FragmentThere());
list.add(new FragmentFour());
2-3:写适配器
注:此处的适配器为FragmentPagerAdapter,要么统一导入v4包下面的,谨慎使用v13包下面的
FragmentPagerAdapter adapter = new FragmentPagerAdapter(fm) {

@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}

@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return list.get(arg0);
}
};
2-4:写入viewpager的监听事件,即点击切换及换背景色
pager.setOnPageChangeListener(new OnPageChangeListener(){代码}
写入它的3个方法
选择时:
public void onPageSelected(int index)
页面滑动后:
public void onPageScrolled(int arg0, float arg1, int arg2)
页面滑动时:
public void onPageScrollStateChanged(int arg0)
2-5:写入TextView或Button的点击方法
public void Test(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.tv1:
pager.setCurrentItem(0);
break;

case R.id.tv2:
pager.setCurrentItem(1);
break;

case R.id.tv3:
pager.setCurrentItem(2);
break;

default:
break;
}
}

时间: 2024-10-18 12:25:52

Viewpaer+fragment的相关文章

Android 导航条效果实现(六) TabLayout+ViewPager+Fragment

TabLayout 一.继承结构 public class TabLayout extends HorizontalScrollView java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.HorizontalScrollView ? android.support.design.widget.TabLayout 二.TabLayou

安卓性能优化之Activity和Fragment通过onSaveInstanceState()保存和恢复数据

Activity和Fragment 都有自己的生命周期,而且很类似.Fragment比Activity多了onAttach()和onCreateView()这些方法.整体它们两者是一样的周期,都会经历从创建视图( onCreate(),onCreateView(),onStart() )到暂停( onPause(), onStop() ) 到重新返回( onResume() ) 到最后销毁( onDetroyView(), onDestroy() ) 这些方法. 之前有提过,熟悉组件的这些生命周

fragment跳转

activity的布局代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match

FragmentTabHost切换Fragment避免重新加载Fragment,即重复调用Fragment的onCreateView

FragmentTabHost一切换再返回的时候Fragment就会调用onCreateView重新绘制页面,被这个问题坑了好久.刚开始也不知道是 FragmentTabHost还是Fragment的原因,网上找了好久也没找到解决办法.终于搜了好久还是找到了: 解决方法,在fragment onCreateView 里缓存View: private View rootView;// 缓存Fragment view @Override public View onCreateView(Layout

Fragment事务管理源码分析

概述 在Fragment使用中,有时候需要对Fragment进行add.remove.show.hide.replace等操作来进行Fragment的显示隐藏等管理,这些管理是通过FragmentTransaction进行事务管理的.事务管理是对于一系列操作进行管理,一个事务包含一个或多个操作命令,是逻辑管理的工作单元.一个事务开始于第一次执行操作语句,结束于Commit.通俗地将,就是把多个操作缓存起来,等调用commit的时候,统一批处理.下面会对Fragmeng的事务管理做一个代码分析 分

仿知乎程序 fragment的切换以及toolbar在不同页面下显示的menu不同

       我们在看知乎的时候,你会发现,首页,发现,关注,收藏,草稿这五项,你在点击之后进入到相应页面之后,侧滑菜单还在,你左侧滑一下,这个侧滑菜单还在,而提问,左滑屏幕,这个页面就没有,有点像返回上一页的感觉. 从操作来看,五页面应该是fragment之间的切换,而提问是单独的activity.     我们先从几个fragment入手,这里我们建立五fragment页,选择继承自android.support.v4.app.Fragment,因为这五个页面基本上都一样,就是简单的一个布局

对fragment的学习

一直对fragment一知半解,今天在运行一个项目的时候,有用到fragment,所以好好地复习了下fragment的知识: 1.fragment的生命周期: 2.在一个访问fragment中的资源可以在 public void onActivityCreated(Bundle savedInstanceState){}方法中 3. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle save

Android Acitivity 与 Fragment 声明周期

Activity的生命周期: (1)启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态. (2)当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行. Activity -> onFreeze() -> onPause() (3)当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态. (4)当前

Android - Fragment (三)不同Fragment之间的通信

在Fragment的java文件中,可以使用getActivity()来获得调用它的activity, 然后再找到另一个Fragment,进行通信 getActivity().getFragmentManager().findFragmentById(R.id.fragment_list); 但这样做耦合度太高,不方便后续的修改操作 Fragment与其附着的Activity之间的通信,都应该由Activity来完成 不能是多个Fragment之间直接通信 Fragment与其附着的Activi