Fragment嵌套Fragment和Viewpager
来源:互联网 发布:淘宝造物节2017图片 编辑:程序博客网 时间:2024/05/18 16:57
import android.app.Fragment;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.support.annotation.IdRes;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.RadioGroup;import java.util.ArrayList;import java.util.List;import l.framgsradiogroupviewpager.Framgs.framg1;import l.framgsradiogroupviewpager.Framgs.framg2;import l.framgsradiogroupviewpager.Framgs.framg3;//首先创建fragment在MainActivity中和RadioGroup一起使用,之后再第一个Fragment中 布局ViewPaegr再ViewPager总添加Fragment,在布局ListView添加适配器即可,//fragment中嵌套子fragment要用getChildFragmentManager()public class MainActivity extends AppCompatActivity { private RadioGroup rg; private android.support.v4.app.FragmentManager supportFragmentManager; private android.support.v4.app.FragmentTransaction fragmentTransaction; private framg1 f1; private framg2 f2; private framg3 f3; private List<Fragment> list = new ArrayList<Fragment>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件 rg = (RadioGroup) findViewById(R.id.rg); //获取管理者 supportFragmentManager = getSupportFragmentManager(); //开启事务 fragmentTransaction = supportFragmentManager.beginTransaction(); //实例化碎片 f1 = new framg1(); //默认一个页面 fragmentTransaction.add(R.id.fl, f1).commit(); //获取点击事件 rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) { //隐藏所用的Frangment hideFrag(); //在获取一个开启事务 android.support.v4.app.FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction(); switch (i) { case R.id.rb: fragmentTransaction.show(f1).commit(); break; case R.id.rb1: //如果等于空 if (f2 == null) { f2 = new framg2();//实例化一个Frang2 fragmentTransaction.add(R.id.fl, f2).commit();//添加布局里 } else { fragmentTransaction.show(f2).commit();//有的话就show } break; case R.id.rb2: if (f3 == null) { f3 = new framg3(); fragmentTransaction.add(R.id.fl, f3).commit(); } else { fragmentTransaction.show(f3).commit(); } break; } } }); } //隐藏所用的Frangment private void hideFrag() { //在获取一个开启事务 android.support.v4.app.FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction(); //不等于空或者是否添加 if (f1 != null && f1.isAdded()) { fragmentTransaction.hide(f1);//隐藏 } //不等于空或者是否添加 if (f2 != null && f2.isAdded()) { fragmentTransaction.hide(f2);//隐藏 } if (f3 != null && f3.isAdded()) { fragmentTransaction.hide(f3); } fragmentTransaction.commit(); }}
- //在第一个Fragment中添加Viewpager,加载多个Fragment
package l.framgsradiogroupviewpager.Framgs;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import java.util.ArrayList;import java.util.List;import l.framgsradiogroupviewpager.R;/** * Created by lenovo on 2017/11/9. */public class framg1 extends Fragment { private ViewPager vp; List<Fragment> fragmentlist=new ArrayList<>(); //只写加载布局和找到控件 @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View inflate = inflater.inflate(R.layout.f1, container, false); return inflate; } /** * 写fragment的逻辑; * @param view * @param savedInstanceState */ @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); //集合数据 getlist(); vp = (ViewPager)view.findViewById(R.id.vp); //fragment中嵌套子fragment要用getChildFragmentManager() Myadapter my=new Myadapter(getChildFragmentManager()); vp.setAdapter(my); } private void getlist() { charfrang1 c1=new charfrang1(); charfrang2 c2=new charfrang2(); fragmentlist.add(c1); fragmentlist.add(c2); } class Myadapter extends FragmentPagerAdapter{ public Myadapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return fragmentlist.get(position); } @Override public int getCount() { return fragmentlist.size(); } }}
阅读全文
0 0
- Fragment嵌套Fragment和Viewpager
- Fragment嵌套Fragment和Viewpager
- Fragment和ViewPager嵌套使用
- viewPager+fragment嵌套viewPager+fragment
- ViewPager+Fragment嵌套ViewPager+Fragment
- Fragment嵌套Fragment,Viewpager和Fragment联动,懒加载
- Fragment+Viewpager+嵌套Tablelayout+fragment
- Fragment里面嵌套ViewPager
- ViewPager+Fragment嵌套
- Fragment嵌套ViewPager
- fragment嵌套viewpager
- ViewPager嵌套Fragment
- Android ViewPager嵌套Fragment
- ViewPager和Fragment的嵌套使用
- Viewpager+Fragment嵌套Viewpager+Fragment空白页问题
- ViewPager+Fragment以及Fragment嵌套ViewPager
- Slidingmenu 结合fragment,和viewpager嵌套fragment遇到的问题;
- ViewPager嵌套Fragment再嵌套ViewPager嵌套Fragment
- Unity5.x ShaderLab SubShader Tags介绍
- Word转pdf
- 四 Java基本数据类型
- oc 获取设备型号
- 几个有趣的算法题目
- Fragment嵌套Fragment和Viewpager
- CentOS7 64位下MySQL5.7安装与配置(YUM)
- 我走过最长的路,就是需求的套路
- error C2533: “CTester::{ctor}”: 构造函数不能有返回类型
- Java读取.ini文件
- java字符串相关常见使用
- 编译Hadoop
- React Native 集成极光推送 JPush出现的一些幺蛾子
- 顺序容器部分习题(基础)