Мне интересно, можно ли это сделать?В основном у меня есть макет с двумя фрагментами, который я использую для большинства своих вкладок, но на двух вкладках я хочу добавить еще пару фрагментов, чтобы отобразить больше вещей.Можно ли изменить представление содержимого на другой макет при смене вкладок?
Если это невозможно, я подумал о создании макета со всеми фрагментами фрагментов, которые мне понадобятся, и просто измените макеты фрагментов.так что те, которые я не использую, не "показывают".Я не имею в виду использование FragmentTransaction.hide()
, потому что я хочу, чтобы фрагменты заполняли экран, когда другие не используются.Будет ли это плохой идеей или есть более простой способ сделать то, что я хочу?
вот мой код для активности и вкладок
public class Tabs extends Activity{
long deleteID;
@Override
public void onCreate(Bundle create){
super.onCreate(create);
setContentView(R.layout.main_layout);
createTabs();
ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
bar.setDisplayHomeAsUpEnabled(true);
if(create != null){
bar.setSelectedNavigationItem(create.getInt("Home",0));
}
}
Я также добавляю вкладки и еще много чего.не важно
это подкласс actionbar
private class TabListener implements ActionBar.TabListener{
TabContent mFragment;
public TabListener(TabContent fragment) {
mFragment = fragment;
}
@Override
public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) {
}
@Override
public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) {
ListFragment newListFragment = new BowlersListFragment();
Fragment newFragment = new BowlerEntryFrag();
ft = getFragmentManager().beginTransaction();
ft.replace(R.id.frameOne, newListFragment);
ft.replace(R.id.frameTwo, newFragment);
ft.addToBackStack(null);
ft.commit();
}
@Override
public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) {
if(ft != null){
ft.remove(mFragment);
}
}
}
}
Я пытался сделать Activity.setContentView(r.layout.newView)
, но это не сработает