0

Я реализовал пейджер представления в своем фрагменте. После нажатия кнопки «Назад» приложение перестает заменять предыдущую страницу. Может ли кто-нибудь сказать мне, как я вернусь, страница вернется ко мне.back button not in viewPager Works

public class Warenkonto extends Fragment { 

    public Warenkonto() { 
    } 

    ViewPager viewPager; 
    WarenkontoPageAdapter adapter; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) { 

      View view = inflater.inflate(R.layout.start_kapitel, container, false); 
adapter = new WarenkontoPageAdapter(this.getActivity()); 
      viewPager = (ViewPager) view.findViewById(R.id.viewPager); 
      viewPager.setAdapter(adapter); 
     viewPager.setCurrentItem(0); 
     return view; 
    } 

    public void onBackPressed() { 
      if (viewPager.getCurrentItem() == 0) { 
        viewPager.setCurrentItem(0); 
} else { 
        viewPager.setCurrentItem(viewPager.getCurrentItem() - 1); 
      } 
    } 

}

public class WarenkontoPageAdapter extends PagerAdapter { 

    Context context; 

    public WarenkontoPageAdapter(Context context) { 
      this.context = context; 
    } 

    TextView titel; 
    TextView titelInhalt; 
    TextView inhalt; 
    TextView seite_von_bis; 
    ImageView bild; 
    ImageView imagePfeilrechts; 
    CharSequence titelInhalttext; 
    CharSequence inhaltText; 

    public int seite; 
    int maxSeitenzahl = 20; 

    public int getCount() { 
      return 3; 
    } 

    public Object instantiateItem(View collection, int position) { 

      LayoutInflater inflater = (LayoutInflater) collection.getContext() 
          .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

      int resId = 0; 

      switch (position) { 
      case 0: 
        resId = R.layout.a_titel_inhalt; 
        seite = 1; 
        break; 
      case 1: 
        resId = R.layout.a_titel_inhalt; 
        seite = 2; 
        break; 
      case 2: 
        resId = R.layout.a_inhalt; 
        seite = 3; 
        break; 

      } 

      View view = inflater.inflate(resId, null); 

      if (seite == 1) { 
        titel = (TextView) view.findViewById(R.id.a_ti_titel); 
        titel.setText("Warenkonto"); 

        titelInhalt = (TextView) view.findViewById(R.id.a_ti_inhalt); 
        titelInhalttext = Html.fromHtml("Page 1"); 


      } else if (seite == 2) { 

        titel = (TextView) view.findViewById(R.id.a_ti_titel); 
        titel.setText("Page 2"); 

        titelInhalt = (TextView) view.findViewById(R.id.a_ti_inhalt); 
        titelInhalttext = Html 
            .fromHtml("Page 2"); 

        titelInhalt.setText(titelInhalttext); 


      } else if (seite == 3) { 

        inhalt = (TextView) view.findViewById(R.id.a_i_inhalt); 
        inhaltText = Html 
            .fromHtml("Page 3"); 

        inhalt.setText(inhaltText); 


      } 


      ((ViewPager) collection).addView(view, 0); 

      return view; 

    } 

    @Override 
    public void destroyItem(View arg0, int arg1, Object arg2) { 
      ((ViewPager) arg0).removeView((View) arg2); 
    } 

    @Override 
    public boolean isViewFromObject(View arg0, Object arg1) { 
      return arg0 == ((View) arg1); 
    } 

    @Override 
    public Parcelable saveState() { 
      return null; 
    } 

}

ответ

0

согласно Android Design Guide Navigation section (курсив)

изменяющемся вид в окне

Изменение параметров просмотра для экрана не изменить поведение Up или Назад: экран по-прежнему находится в том же месте в иерархии приложения , и никакой новой истории навигации не создается.

Примеры таких изменений зрения являются:

  • Переключение представления с помощью вкладок и/или влево и вправо пойло
  • Переключение представления, используя выпадающий список (он же разрушилась вкладки)
  • Фильтрация лист
  • Сортировка списка
  • Изменение характеристик отображения (например, масштабирование)

Вкладки (и ViewPagers) не должны иметь историю, поэтому их не следует добавлять в задний стек.