Hirdetés
Új hozzászólás Aktív témák
-
WonderCSabo
félisten
Ma hajnali ötig szívtam a support lib miatt. A support Fragmenteket mindenki ismeri. Viszont kiderült a Googlenek egy turpissága, ami teljesen dokumentálatlanul történik support Fragmentek esetében.
Fragment hozzáadása alatt ez történik:
f.mView = f.onCreateView(f.getLayoutInflater(f.mSavedFragmentState),
null, f.mSavedFragmentState);
if (f.mView != null) {
f.mInnerView = f.mView;
f.mView = NoSaveStateFrameLayout.wrap(f.mView);
if (f.mHidden) f.mView.setVisibility(View.GONE);
f.onViewCreated(f.mView, f.mSavedFragmentState);
} else {
f.mInnerView = null;
}A NoSaveStateFrameLayout pedig ez:
class NoSaveStateFrameLayout extends FrameLayout {
static ViewGroup wrap(View child) {
NoSaveStateFrameLayout wrapper = new NoSaveStateFrameLayout(child.getContext());
ViewGroup.LayoutParams childParams = child.getLayoutParams();
if (childParams != null) {
wrapper.setLayoutParams(childParams);
}
NoSaveStateFrameLayout.LayoutParams lp = new NoSaveStateFrameLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
child.setLayoutParams(lp);
wrapper.addView(child);
return wrapper;
}
...
}Amint fent látható a Google azt a turpisságot követi el, hogy miután az onCreateView lefut, a Fragmentet egy új FrameLayout-ba wrappeli szépen... Ez a FrameLayout pedig jól szétcseszi a View hiearcihámat, különösen nested Fragmentek esetén. Egyébként csomó idő is volt rájönni erre... Az is totál inkorrekt, hogy elvileg az onViewCreated első paraméterének az a specifikációja, hogy az a View, amit az onCreateView csinált - na itt ez se fog érvényesülni, hiszen a wrapper FrameLayout lesz az onViewCreated első paramétere.
Remélem időt spóroltam Nektek ezzel, hátha Ti is belefuttok ilyesmibe.
Új hozzászólás Aktív témák
- Samsung Galaxy Felhasználók OFF topicja
- Samsung Galaxy A54 - türelemjáték
- gban: Ingyen kellene, de tegnapra
- Rövid időre leállhat a 8 GB-os GeForce RTX 5060 Ti gyártása
- One otthoni szolgáltatások (TV, internet, telefon)
- Gyúrósok ide!
- PlayStation 5
- Robogó, kismotor
- Mibe tegyem a megtakarításaimat?
- Saros (PS5)
- További aktív témák...
- WD Black SN850X 8TB M.2 NVME PCI-E 4.0 x4 - Új, 1 év garancia - 7200-6600 MBs - Eladó!
- 16GB DDR4 PC MEMORIA MODUL(4X4GB, 2X8GB) RAM / SZÁMLÁVAL, GARANCIÁVAL
- Szép Kis játékos HP,Core i7 10510u(8X4,9Ghz)MX 2/4GB DDR5 VGA,FullHD IPS,16-32GB RAM/256-512SSD
- Megkímélt ThinkPad Ryzen 5 Pro(12x4,0Ghz)16-32RAM/256-512SSD,100% akku,vil.bilI.
- Lenovo Thinkpad P50 15,6" FHD IPS kijelző, I7-6820HQ CPU, 16GB DDR4, 512GB NVMe SSD, 4GB Quadro VGA,
- Asus VivoBook W11 Laptop (X1504ZA-BQ856W)!
- Eredeti Lenovo 230W töltők - 4X20Z83995
- Új Asus Zenbook 14 OLED 2.8K 90Hz HDR i7-13700H 14mag 16GB RAM 1TB SSD Intel Iris XE Win11 Garancia
- AKCIÓ! Asus B250M i3 6100T 8GB DDR4 240GB SSD GTX 1050 Ti 4GB Zalman T3 Plus DeepCool 400W
- Infinix Hot 11s / 4/128GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

