2012-04-04 6 views
7

Obecnie definiuję różne Fragmenty w pliku zasobów i ukrywam je w metodzie onCreate, która zawiera, ale nie jestem usatysfakcjonowany tym podejściem, ponieważ oczekiwałbym, że jest to jedna z cech, które każdy fragment definiuje dla siebie.Czy można ukryć Fragment, definiując jego stan w XML?

Czy jestem zbyt uprzedzony do fragmentów lub po prostu brakuje mi tej techniki?

Dzięki, R

Odpowiedz

4

nie jestem zadowolony z tego podejścia, jak bym się spodziewał, że jest to jedna z cech, że każdy fragment będzie definiujących dla siebie.

Nie zgadzam się z tą oceną.

Fragmenty są odpowiedzialne za niewielką część ekranu i wszelkie zdarzenia, które są całkowicie zawarte w tym małym fragmencie ekranu.

Niezależnie od tego, czy fragment jest gospodarzem A, czy też Aktywności B lub C, niezależnie od tego, czy znajduje się obok innych fragmentów, czy jest obecnie widoczny, czy nie, itd., To nie odpowiedzialność fragmentu. Ta odpowiedzialność spoczywa na działalności hostingowej (lub działaniach, jeśli fragment jest ponownie wykorzystywany). Aktywność hostingu zna rozmiar ekranu i to, co należy zrobić, jeśli chodzi o ładowanie poszczególnych fragmentów na ekran.

W końcu zasady mogą ulec zmianie. Być może fragment jest ukryty na małych/zwykłych ekranach, ale widoczny na ekranach dużych/dużych. Lub, być może fragment początkowo był używany indywidualnie, ale później jest ładowany do ViewPager. Lub, być może fragment jest dynamicznie tworzony jako część FragmentTransaction i dodawany do stosu BACK, więc użytkownik może samodzielnie pozbyć się fragmentu. IMHO, fragment ten nie powinien wiedzieć ani nie dbać o żadną z tych rzeczy, ponieważ wszystkie przekraczają granice tego jednego pojedynczego fragmentu.

+0

Dzięki Mark, musicie przemyśleć moje podejście do fragmentów. Myślę, że używam ich w zbyt statyczny sposób. Dokumenty sugerują myślenie w paradygmacie sieci, którym być może nie jestem. –

+0

Czy można ukryć fragment ukrywając go za pomocą kodu java, a nie xml? Obecnie umieszczam ukryty kod w onStart() fragmentu, który ma być ukryty. Ale nadal jest widoczny. – Namratha

Powiązane problemy