Hirdetés
- Samsung Galaxy Buds3 Pro - szárat eresztettek a babok
- Xiaomi 17 Ultra - jó az optikája
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
- Motorola Edge 50 Ultra - szépen kifaragták
- Google Pixel 10a – évismétlés
- Garmin Venu 4 - a nagy ugrás
- iPhone topik
- Huawei P30 Pro - teletalálat
Ú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
- Honor X7b 128GB, Kártyafüggetlen, 1 Év Garanciával
- 1TB NVMe SSD, 1 év gar 2230
- Csere-Beszámítás! Apple Macbook Pro 2013 vége! 512GB SSD, I7, 16GB DDR3, Intel Iris Pro! Olvass!
- Hp 830 G7 Core i7 10610U 16Gb 512Gb NVMe FullHD IPS Boltból Számlával Garanciával
- Honor Magic5 Lite 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

