Fragment在实际项目开发中使用的越来越多,如今简介一下

布局文件:

Java文件:

package com.succ7.fragmenttest;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.view.Window;
import android.widget.FrameLayout;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class MainActivity extends FragmentActivity {

	private FrameLayout layout_content;
	/**
	 * 默认显示的fragment
	 */
	private int index = 0;
	private int current_index = R.id.rb_1;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);

		layout_content = (FrameLayout) findViewById(R.id.layout_content);
		RadioGroup main_radio = (RadioGroup) findViewById(R.id.main_radio);
		
		main_radio.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				switch (checkedId) {
				case R.id.rb_1:
					index = 0;
					break;
				case R.id.rb_2:
					index = 1;
					break;
				case R.id.rb_3:
					index = 2;
					break;
				case R.id.rb_4:
					index = 3;
					break;
				case R.id.rb_5:
					index = 4;
					break;
				}
				//这个是初始化fragment
				Fragment fragment = (Fragment) fragments.instantiateItem(layout_content, index);
				//默认选择第0个fragment
				fragments.setPrimaryItem(layout_content, 0, fragment);
				//fragment提交更新事务
				fragments.finishUpdate(layout_content);
			}
		});
		
		main_radio.check(current_index);
	}

	// getSupportFragmentManager() 这种方法是在FragmentActivity 里面的
	FragmentStatePagerAdapter fragments = new FragmentStatePagerAdapter(
			getSupportFragmentManager()) {

		//几个fragment就返回几个
		@Override
		public int getCount() {
			return 5;
		}

		@Override
		public Fragment getItem(int arg0) {
			Fragment fragment = null;
			switch (arg0) {
			case 0:
				fragment = new Fragment1();
				break;
			case 1:
				fragment = new Fragment2();
				break;
			case 2:
				fragment = new Fragment3();
				break;
			case 3:
				fragment = new Fragment4();
				break;
			case 4:
				fragment = new Fragment5();
				break;
			}
			return fragment;
		}
	};
}

Fragment1,Fragment2-5代码:

package com.succ7.fragmenttest;

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;


public class Fragment1 extends Fragment {

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		ImageView imageview = new ImageView(getActivity());
		imageview.setBackgroundResource(R.drawable.g1);
		return imageview;
	}

	@Override
	public void onActivityCreated(Bundle savedInstanceState) {
		super.onActivityCreated(savedInstanceState);
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	}

	@Override
	public void setMenuVisibility(boolean menuVisible) {
		super.setMenuVisibility(menuVisible);
		
		if(getView() != null){
			getView().setVisibility(menuVisible?View.VISIBLE:View.INVISIBLE);
		}
		/*if(menuVisible){
			getView().setVisibility(View.VISIBLE);
		}else{
			getView().setVisibility(View.INVISIBLE);
		}*/
	}

}



相关文章:

  • 2021-08-30
  • 2021-12-21
  • 2021-10-31
  • 2021-09-21
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-21
  • 2021-04-15
  • 2021-06-05
  • 2022-12-23
  • 2022-12-23
  • 2021-05-26
相关资源
相似解决方案