//Activity类
public class MainActivity extends FragmentActivity{
@ViewInject(R.id.chat)
public RelativeLayout layoutChat;
@ViewInject(R.id.setting)
public RelativeLayout layoutSetting;
private FragmentManager fragmentManager;
public DirectoryFragment fragDirectory;
public ChatFragment fragChat;
public SettingFragment fragSetting;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
setContentView(R.layout.activity_main);
x.view().inject(this);
layoutChat.setOnClickListener(new onClick());
layoutSetting.setOnClickListener(new onClick());
fragmentManager = getSupportFragmentManager();
setTabSelection(1);
setTabSelection(2);
setTabSelection(0);
}
//创建Fragment
public void setTabSelection(int index) {
// 开启一个Fragment事务
FragmentTransaction transaction = fragmentManager.beginTransaction();
// 先隐藏掉所有的Fragment,以防止有多个Fragment显示在界面上的情况
hideFragments(transaction);
switch (index) {
case 0:
curSelection = 0;
if (fragDirectory == null) {
// 如果MessageFragment为空,则创建一个并添加到界面上
fragDirectory = new DirectoryFragment(this);
transaction.add(R.id.fragment, fragDirectory);
} else {
// 如果MessageFragment不为空,则直接将它显示出来
transaction.show(fragDirectory);
}
transaction.commit();
break;
case 1:
if (fragSetting == null) {
// 如果ContactsFragment为空,则创建一个并添加到界面上
fragSetting = new SettingFragment(this);
transaction.add(R.id.fragment, fragSetting);
} else {
// 如果ContactsFragment不为空,则直接将它显示出来
transaction.show(fragSetting);
}
transaction.commit();
break;
case 2:
curSelection = 2;
if (fragChat == null) {
// 如果ContactsFragment为空,则创建一个并添加到界面上
fragChat = new ChatFragment(this);
transaction.add(R.id.fragment, fragChat);
} else {
// 如果ContactsFragment不为空,则直接将它显示出来
transaction.show(fragChat);
}
transaction.commit();
break;
}
}
//隐藏Fragment
private void hideFragments(FragmentTransaction transaction) {
if (fragDirectory != null) {
transaction.hide(fragDirectory);
}
if (fragSetting != null) {
transaction.hide(fragSetting);
}
if (fragChat != null){
transaction.hide(fragChat);
}
}
}
//frament类
public class ChatFragment extends Fragment{
private MainActivity mActivity;
public ChatFragment(MainActivity activity) {
mActivity = activity;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//加载frament界面
View contactsLayout = inflater.inflate(R.layout.chat_main, container, false);
x.view().inject(mActivity);
return contactsLayout;
}
备注:另一个frament以同样方式创建