milosciganovic / ByteoutDemo

0 stars 0 forks source link

Hide tabs when on ArticleScreen #20

Open mi5ha opened 4 years ago

mi5ha commented 4 years ago
milosciganovic commented 4 years ago

VAZNO!

Izgleda da MaterialBottomTabBar nema sve properije kao i obican bottomTabBar.

Konkretno, u bottomTabBar u BottomTab.Screan mogu da ubacim u property options: tabBarVisible: false sto ce na tom screen-u skloniti tabBar. Ovo svakako ne resava nas problem posto mi moramo da ga sklonimu u Article screenu koji je nested od tog tabBar-a ali ovo mi je bila prva referenca. Takodje pokusao sam da nadjem koja je zamena za ovaj property u Material-u ali nisam nasao. Kada ubacim property dobijam error od TS-a i naravno ne radi. Na obicnom TabBar-u radi super.

E sad moguce je da su ga namerno izbacili posto na zvanicnoj dokumentaciji pise ovo:

Some tab navigators such as bottom tab navigator also have a tabBarVisible option which can be used to hide the tab bar based on instructions in the Screen options resolution guide. However, we don't recommend using it since showing/hiding the tab bar mid-navigation can affect the animation of the stack navigator causing glitchy behaviour.

Takodje moguce je da sam ja jednostavno nesto prevideo, pa bih svakako ostavio opciju da se to detalno istrazi, jer ja sam bio ubedjen da ovaj Material zapravo sadrzi sve iste property-e samo da je drugaciji izgled.

PROBLEM

Svakako pokusao sam prvo sa obicnim tabBar-om i sa ovim propertijem. Logika mi je bila sledeca:

           <BottomTab.Screen
                name="AllNewsStackNav"
                component={AllNewsStackNav}
                options={(route) => ({
                    tabBarLabel: 'All News',
                    tabBarVisible: route.route.name === 'ArticleScreen' ? false : true,
                    tabBarIcon: ({ focused, color,  }) =>
                        <Icon name={"newspaper"} style={{ color }} />
                })}
            />

Medjutim ovo ce uvek da mi vrati false, jer u ovom route naravno nemam te rute vec samo 'AllNewsStackNav'.

Kada bih tu mogao da ucitavam sve nested rute (Kapiram da moze ali nisam video kako moguce da sam nesto preskocio) onda bi to radilo, ali svakako nam ne bi resilo problem sa material-om.

mi5ha commented 4 years ago

Pushovao sam neko resenje koje radi, al mi se uopste ne svidja. TS je otisao kroz prozor, i nacin kako ustanovim da sam na ArticleScreen ekranu je totalno zavistan od strukture navigacionog stabla sto je katastrofa. Ovo mora bolje resenje da se nadje.

mi5ha commented 4 years ago

Pazi njihovo resenje :-)

https://reactnavigation.org/docs/hiding-tabbar-in-screens

mi5ha commented 4 years ago

Oni su totalno u odnosu na v4 promenili kako gledas stanje. I ovo mi se uopste ne svidja.

U v4 si imao objekat prevState i objekat nextState i u njima samo podatke vezane za krajnje stane.

Sad ti jedan state objekat vraca sve, i ne mozes tako lako da dodjes do ekrana koji je otvoren, on je duboku zakopan u routes. Pogledaj, googleaj jel se jos neko zalio na ovo. Koje resenje postoji da se inspectuje route/state objekat i sl.

milosciganovic commented 4 years ago

Ovaj nacin koji si ti ubacio ja sam zapravo video. Tacnije video sam oba nacina. Ovaj njihov sam zanemario jer to menja nase stablo, a nekako sam mislio da nije dobar nacin da resim problem tako sto cu izmeniti stablo :D

Sto se tice drugog nacina zapravo nekoliko ljudi je tako resilo problem, moj problem je bio sto nisam shvatio kako mogu da izvucem taj route, pa sam odustao od toga.

Da dosta je iskomplikovan, ali bar ono sto sam guglao nisam nasao nista normalnije. Provericu jos danas tokom dana.