现在的位置: 首页 > 综合 > 正文

Fragment知识整理

2018年01月31日 ⁄ 综合 ⁄ 共 2400字 ⁄ 字号 评论关闭

横竖屏切换改变

int width = getWindowManager().getDefaultDisplay().getWidth();
		int height = getWindowManager().getDefaultDisplay().getHeight();
		
		Fragment1 fragment1 = new Fragment1();
		Fragment2 fragment2 = new Fragment2();
		
		//定义片段管理器
		FragmentManager fm=getFragmentManager();
		//定义片段事务处理
		FragmentTransaction ft=fm.beginTransaction();
		
		//判断横竖屏
		if(width>height){
			ft.replace(android.R.id.content, fragment1);
		}else{
			ft.replace(android.R.id.content, fragment2);
		}
		
		ft.commit();

Activity向Fragment传数据

// 创建Bundle,准备向Fragment传入参数
		Bundle arguments = new Bundle();
		arguments.putInt(BookDetailFragment.ITEM_ID, id);
		// 创建BookDetailFragment对象
		BookDetailFragment fragment = new BookDetailFragment();
		// 向Fragment传入参数
		fragment.setArguments(arguments);
		// 使用fragment替换book_detail_container容器当前显示的Fragment
		getFragmentManager().beginTransaction()
			.replace(R.id.book_detail_container, fragment)
			.commit(); 

Fragment获取数据

if (getArguments().containsKey(ITEM_ID))
		{
			book = BookContent.ITEM_MAP.get(getArguments()
				.getInt(ITEM_ID)); //①
		}

Fragment显示布局文件

// 重写该方法,该方法返回的View将作为Fragment显示的组件
	@Override
	public View onCreateView(LayoutInflater inflater
		, ViewGroup container, Bundle savedInstanceState)
	{
		// 加载/res/layout/目录下的fragment_book_detail.xml布局文件
		View rootView = inflater.inflate(R.layout.fragment_book_detail,
				container, false);
		if (book != null)
		{
			// 让book_title文本框显示book对象的title属性
			((TextView) rootView.findViewById(R.id.book_title))
					.setText(book.title);
			// 让book_desc文本框显示book对象的desc属性
			((TextView) rootView.findViewById(R.id.book_desc))
				.setText(book.desc);	
		}
		return rootView;
	}

FragmentTransaction调用commit()方法之后,要你重新调用fragmentManager的beginTransaction()方法

		fragmentManager=getFragmentManager();
		
		abnormalFragment=new ExecuteAbnormalFragment();
		normalFragment = new ExecuteNormalFragment();
		
		status=(RadioGroup)findViewById(R.id.status);
		status.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			@Override
			public void onCheckedChanged(RadioGroup arg0, int checkedId) {
				fragmentTransaction=fragmentManager.beginTransaction();
				if(checkedId==R.id.abnormal){
					Toast.makeText(getApplicationContext(), "不正常", Toast.LENGTH_SHORT).show();
					fragmentTransaction.replace(R.id.status_show, abnormalFragment);
//整体语句执行方法			getFragmentManager().beginTransaction().replace(R.id.status_show, abnormalFragment).commit();

				}else{
					Toast.makeText(getApplicationContext(), "正常", Toast.LENGTH_SHORT).show();
					fragmentTransaction.replace(R.id.status_show, normalFragment);
//					getFragmentManager().beginTransaction().replace(R.id.status_show, normalFragment).commit();
				}
				
				fragmentTransaction.commit();
			}
		});
		
	}


【上篇】
【下篇】

抱歉!评论已关闭.