На самом деле, я использую целое приложение в одном действии с помощью фрагментов в контейнере основного представления.
Один фрагмент содержит viewPager, когда я щелкнул по фрагменту кнопки заголовка, замененному на LoginFragment
, а на Back мы поддерживаем backstack
, поэтому фрагмент, содержащий viewPager, будет сверху, но там мы получили пустой вид текущего элемента в viewPager
.
ViewPager пустой на обратной стороне от другого фрагмента
Ответ 1
Это мое решение, и я много раз искал ответ, поэтому, если у вас есть лучший, пожалуйста, поделитесь им со мной.
i переключил ViewPager на Activity
Действие XML
<RelativeLayout ....
xmlns.
<FrameLayout
android:id="@+id/container"
android:layout_height="match_parent"
android:layout_width="match_parent"
/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
</...viewPager>
Класс действия
public MainActivity extends Activity .... {
private boolean mShowPager;
private FrameLayout mContainer;
private ViewPager mPager;
//Inflate them
public void showViewPager() {
mPager.setVisibility(View.Visible);
mContainer.setVisibilty(View.Gone);
}
public void showContainer() {
mContainer.setVisibility(View.Visible);
mPager.setVisibilty(View.Gone);
}
public void showViewPager(boolean show) {
mShowPager = show;
}
@override
public void onBackPressed() {
if(mShowPager) {
showViewPager();
}
super.onBackPressed();
Пример фрагмента
public void onAttach(Activity activity) {
((MainActivity)activity).showViewPager(true);
((MainActivity)activity).showContainer();
//Истина означает, что при возврате назад нажмите ViewPager //Back означает, что все еще отображается Контейнер, но нажмите Назад Info: вы решите, что хотите показать ViewPager или Container, которые содержат фрагменты, и при необходимости вы можете использовать BackStack.
Надеюсь, это помогло мне.