Перекрытие содержимого вкладки ActionBar
Я нашел тонну этих сообщений в StackOverflow. Как и у многих других людей, у меня та же проблема с перекрытием содержимого вкладок при переключении вкладок. Ни один из советов, которые я нашел, не работал с моей проблемой.
Когда мое приложение запускается, оно правильно отображает содержимое первой вкладки. Когда я нажимаю другую вкладку, старое содержимое остается на экране, а содержимое другой вкладки также добавляется на экран. При переключении вкладок во второй раз все содержимое исчезает. Переключение вкладок больше ничего не даст.
Я следовал документу Google для разработчиковВот.
Мое приложение имеет этоonCreate
метод .. Класс расширяетActionBarActivity
из библиотеки поддержкиandroid.support.v7.app
.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayShowTitleEnabled(false);
Tab tab = actionBar.newTab().setText("TAB1").setTabListener(new TabListener<Tab1Class>(this, "tab1", Tab1Class.class));
actionBar.addTab(tab);
tab = actionBar.newTab().setText("TAB2").setTabListener(new TabListener<Tab2Class>(this, "tab2", Tab2Class.class));
actionBar.addTab(tab);
}
мойTabListener
класс копируется со страницы, на которую я ссылаюсь:
public class TabListener<T extends Fragment> implements ActionBar.TabListener {
private Fragment mFragment;
private final Activity mActivity;
private final String mTag;
private final Class<T> mClass;
public TabListener(Activity activity, String tag, Class<T> clz) {
mActivity = activity;
mTag = tag;
mClass = clz;
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if(mFragment == null) {
mFragment = Fragment.instantiate(mActivity, mClass.getName());
ft.add(android.R.id.content, mFragment, mTag);
} else {
ft.attach(mFragment);
}
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
if(mFragment != null) {
ft.detach(mFragment);
}
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {}
}
Оба класса, которые я использую в качестве содержимого вкладок, расширяют фрагментandroid.support.v4.app.Fragment
, Они раздувают свои макеты вonCreateView
методы.
В чем дело?