Ú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
- Hosszú premier előzetest kapott az Arknights: Endfield
- Milyen SSD-t vegyek?
- Kókuszdió: Ryzen ( Zen4 / Zen5) – amikor a „normális működés” magyarázatra szorul
- exHWSW - Értünk mindenhez IS
- PROHARDVER! feedback: bugok, problémák, ötletek
- Vallás
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Windows Insider Program
- Autós topik
- BMW topik
- További aktív témák...
- BESZÁMÍTÁS! MSI B650 R5 7600 32GB DDR5 512GB SSD RX 9070 XT 16GB Zalman Z10 Plus Seasonic 750W
- Akciós kisWorkstation! Dell Precision 3570 i7-1255U 4.7GHz / 32GB / 1000GB / Quadro T550 4GB FHD 15"
- AKCIÓ! Apple Watch Ultra 2 49mm Cellular okosóra garanciával hibátlan működéssel
- 221 - Lenovo LOQ (17IRX10) - Intel Core i5-13450HX, RTX 5050
- BESZÁMÍTÁS! ASRock H110M i5 6600K 8GB DDR4 120GB SSD 500GB HDD GTX 1050 Ti 4GB Zalman T3 Plus 400W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs

