通过record_car和record_person的点击实现下边的fragment的切换。
过程:
1.获取fragmentManager
2.获取FragmentTransaction
3.add/remove/hide/show等方法的使用,本例中使用的是add进去后,再通过使用show和hide进行切换,没有使用remove。
代码实例:
public class RecordTabActivity extends FragmentActivity implements View.OnClickListener {
private TextView record_person;
private TextView record_car;
private ImageView back;
private View person_view;
private View car_view;
private RecordPersonFragment recordPersonFragment;
private RecordCarFragment recordCarFragment;
FragmentManager fragmentManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_record_tab);
initview();
}
private void initview() {
record_person = (TextView)findViewById(R.id.record_person);
record_car = (TextView)findViewById(R.id.record_car);
back = (ImageView)findViewById(R.id.head_blue_back);
person_view = (View)findViewById(R.id.person_view);
car_view = (View)findViewById(R.id.car_view);
record_person.setOnClickListener(this);
record_car.setOnClickListener(this);
back.setOnClickListener(this);
fragmentManager = getFragmentManager();
record_person.performClick();
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.head_blue_back:
finish();
break;
case R.id.record_person:
setTabSelection(0);
person_view.setVisibility(View.VISIBLE);
car_view.setVisibility(View.INVISIBLE);
break;
case R.id.record_car:
setTabSelection(1);
person_view.setVisibility(View.INVISIBLE);
car_view.setVisibility(View.VISIBLE);
break;
default:
break;
}
}
private void setTabSelection(int index) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
hideFragment(fragmentTransaction);
switch (index){
case 0:
if(recordPersonFragment == null){
recordPersonFragment = new RecordPersonFragment();
fragmentTransaction.add(R.id.record_fragment,recordPersonFragment);
}else {
fragmentTransaction.show(recordPersonFragment);
}
break;
case 1:
if(recordCarFragment == null){
recordCarFragment = new RecordCarFragment();
fragmentTransaction.add(R.id.record_fragment,recordCarFragment);
}else {
fragmentTransaction.show(recordCarFragment);
}
break;
default:
break;
}
fragmentTransaction.commit();
}
private void hideFragment(FragmentTransaction fragmentTransaction) {
if(recordPersonFragment != null){
fragmentTransaction.hide(recordPersonFragment);
}
if(recordCarFragment != null){
fragmentTransaction.hide(recordCarFragment);
}
}
}