Mam aktywność i mogę pokazać niektóre fragmenty na framelayout na temat tej działalności. Chciałbym umieścić podgląd stron składający się z fragmentów wewnątrz fragmentu zamiast FragmentActivity. Jak to zrobić?Jak umieścić viewpager wewnątrz fragmentu w Androidzie?
8
A
Odpowiedz
31
Aby mieć fragment ViewPager
i mieć fragmenty stron w tym ViewPager
, należy użyć zagnieżdżonych fragmentów. Jeśli twoja minSdkVersion
ma 17 lub więcej, natywna implementacja fragmentów obsługuje zagnieżdżone fragmenty. W przeciwnym razie będziesz musiał użyć backportu fragmentów support-v13
(lub support-v4
).
Wtedy po prostu trzeba dać getChildFragmentManager()
do listy FragmentPagerAdapter
lub FragmentStatePagerAdapter
:
/***
Copyright (c) 2012 CommonsWare, LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy
of the License at http://www.apache.org/licenses/LICENSE-2.0. Unless required
by applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied. See the License for the specific
language governing permissions and limitations under the License.
From _The Busy Coder's Guide to Android Development_
http://commonsware.com/Android
*/
package com.commonsware.android.pagernested;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class PagerFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View result=inflater.inflate(R.layout.pager, container, false);
ViewPager pager=(ViewPager)result.findViewById(R.id.pager);
pager.setAdapter(buildAdapter());
return(result);
}
private PagerAdapter buildAdapter() {
return(new SampleAdapter(getActivity(), getChildFragmentManager()));
}
}
(od this sample project)
Powiązane problemy
- 1. ViewPager wewnątrz fragmentu wydania
- 2. Android odświeżyć ViewPager wewnątrz fragmentu
- 3. Android: Viewpager wewnątrz fragmentu szuflady nawigacji
- 4. Ustaw wysokość Viewpager wewnątrz Scrollview w Androidzie
- 5. Jak ustawić ViewPager wewnątrz Fragment
- 6. Jak zaimplementować pokaż i ukryj fragment wewnątrz fragmentu w Androidzie
- 7. Skaner QR wewnątrz Fragmentu
- 8. Część fragmentu wewnątrz ViewPager uzyskiwanie obcięte na dole ekranu (Android)
- 9. TabLayout z ViewPager nie działa wewnątrz fragmentu Android
- 10. Zapobieganie pobieraniu następnego fragmentu (karty) z ViewPager
- 11. Użyj jednego fragmentu w ViewPager wiele razy
- 12. czy możliwe jest przejście elementu współdzielonego z fragmentu do ViewPager wewnątrz viewpager
- 13. jak uzyskać dostęp do wartości edittext wewnątrz fragmentu, który jest w viewpager
- 14. Otwórz kamerę wewnątrz fragmentu
- 15. ViewPager w Androidzie zajmuje cały ekran?
- 16. ViewPager wewnątrz ListView
- 17. Jak mogę uzyskać odwołanie do Fragmentu w ViewPager?
- 18. połączeń onStart() fragmentu przed wyświetlać Viewpager, navigation_mode_tabs
- 19. Wiązanie i odszyfrowywanie usługi Android do/z Fragmentu (w ViewPager)
- 20. Jak umieścić RelativeLayout wewnątrz CoordinatorLayout
- 21. ViewPager w Scrollview
- 22. Tworzenie fragmentu w oknie podręcznym - w Androidzie
- 23. ViewPager zagnieżdżony w ViewPager
- 24. Jak umieścić zmienną wewnątrz łańcucha w Pythonie?
- 25. Jak umieścić kolekcję wewnątrz modelu w Backbone.js?
- 26. Jak zachować widok mapy wewnątrz fragmentu?
- 27. Przewijanie w poziomie Przeglądanie wewnątrz ViewPager
- 28. Wstępne ładowanie fragmentu widoku w ViewPager przy pierwszym uruchomieniu
- 29. Ustaw Tytuł inToolBar z fragmentu w Androidzie
- 30. Fragmenty w ViewPager nie są ładowane po odtworzeniu fragmentu zawierającego.
dziękuję, że jest pomocny. – Sayed
Całkowicie pracował dla mnie, dzięki! – josher932
Poprzednio użyłem 'getFragmentManager()'. Następnie zmieniony przez 'getChildFragmentManager()'. Pracował jak urok! –