• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dynamiczne wstawianie fragmentu

0 głosów
534 wizyt
pytanie zadane 21 lutego 2017 w Android, Swift, Symbian przez SebekMakaron Obywatel (1,290 p.)

Witam, chcę wstawić fragment dynamicznie na pół ekranu a dokładniej mam aktywność, której layout zajmuje cały ekran i chcę aby po np kliknięciu przycisku pół aktywności została przykryta fragmentem.

Wiem tylko jak to zrobić w przypadku wstawienia fragmentu od razu przy starcie w zdefiniowanym wcześniej layoucie.

2 odpowiedzi

+1 głos
odpowiedź 21 lutego 2017 przez KubenQPL Maniak (62,840 p.)
wybrane 22 lutego 2017 przez SebekMakaron
 
Najlepsza

W głównym Layoucie zrób FrameLayout zajmujący pół ekranu ( tak jak chcesz ) przypuśćmy że id to fragmentRootLayout 

FragmentManager fm = getFragmentManager(); 
    FragmentTransaction ft = fm.beginTransaction(); 
 
    CustomFragment cf = new CustomFragment();
    ft.replace(R.id.fragmentRootLayout, cf); 
    ft.commit(); 

 

komentarz 21 lutego 2017 przez SebekMakaron Obywatel (1,290 p.)
Tak masz racje to właśnie umiem. Chodzi mi np o to ze mamy cały żółty layout a na nim przycisk po kliknięciu tego przycisku na dolną połowę ekranu pojawia się fragment co skutkuje tym że połowa ekranu jest żółta a połowa np czerwona(kolor fragmentu).

Mogę się mylić ale na ten moment wydaje mi się że muszę na starcie zdefiniować połowę layoutu w której będzie fragment, czyli gdy nie będę używał fragmentu (gdy nie bedzie wyświetlony) tracę połowę ekranu. I w tym moje pytanie jak wygląda kod który wrzuca fragment na wierzch uprzednio go nie pokazując?

Podkreślam że mogę się mylić na ten moment taką mam wiedzę.
komentarz 21 lutego 2017 przez KubenQPL Maniak (62,840 p.)

Możesz ustawić domyślną wartość "visiblty" layoutu fragmentRootLayout na "GONE" to tak jakby nie było go widać i fizycznie go też tam nie ma (INVISIBLE sprawia że jest niewidzialny ale fizycznie jest) więc w pliku layoutu ustawiasz:

<FrameLayout
...
android:visiblity="gone"/>

A w OnClickListener ustawiasz visiblity na VISIBLE:

onClick(View view){
fragmentRootLayout.setVisiblity(View.Visible);
// tutaj umieszczenie fragmentu w fragmentRootLayout według wcześniej podanego kodu
}

 

komentarz 22 lutego 2017 przez KubenQPL Maniak (62,840 p.)
Oczywiście najpierw musisz zadeklarować i zdefiniować zmienna fragmentRootLayout
–1 głos
odpowiedź 21 lutego 2017 przez misiek.sz Bywalec (2,050 p.)
nie wiem do końca o czym piszesz bo nie wysłałeś kodu, ale w JS do zdarzenia "click" przypisujesz funkcję która zmieni właściwości CSS tak aby uzyskać rezultat jaki chcesz.
komentarz 21 lutego 2017 przez KubenQPL Maniak (62,840 p.)
Ale natywne SDK androida to nie webowy JS i CSS

Podobne pytania

0 głosów
0 odpowiedzi 154 wizyt
0 głosów
0 odpowiedzi 113 wizyt
0 głosów
0 odpowiedzi 108 wizyt

93,424 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...