1、使用絕對(duì)定位+zIndex處理視圖時(shí)叹哭,視圖透明問(wèn)題
當(dāng)絕對(duì)定位的視圖與同一層級(jí)的正常視圖發(fā)生了重疊時(shí)忍宋,絕對(duì)定位的視圖會(huì)變得透明,設(shè)置opacity或者backgroundColor都無(wú)法改變透明的結(jié)果
想要變得不透明风罩,需要把絕對(duì)定位的視圖的層級(jí)改到更上一層糠排,使它與正常視圖高一個(gè)層級(jí),可以解決透明問(wèn)題
絕對(duì)定位視圖背景透明的情況
<View>
? ? <View><Text>正常視圖</Text></View>
?????<View><Text>絕對(duì)定位視圖</Text></View>
</View>
修改為以下代碼超升,絕對(duì)定位視圖不會(huì)透明
<View>
????<View><Text>正常視圖</Text></View>? ??
</View>
?<View><Text>絕對(duì)定位視圖</Text></View>
2入宦、在安卓機(jī)上,絕對(duì)定位的組件被鍵盤(pán)頂上去的情況
修改AndroidManifest.xml
在AndroidManifest.xml查詢(xún)android:windowSoftInputMode屬性室琢,修改為下面的值
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
如果沒(méi)有乾闰,直接添加該屬性即可
采用上面這種方案會(huì)使所有的絕對(duì)定位元素都不會(huì)被頂上去,但如果你的應(yīng)用里有一些畫(huà)面需要底部輸入框之類(lèi)的盈滴,彈起鍵盤(pán)時(shí)又需要底部?jī)?nèi)容被頂上去的話涯肩,還有另外一種方案。
就是保持android:windowSoftInputMode不變巢钓,用ScrollView包裹住輸入框和底部元素病苗,當(dāng)焦點(diǎn)定位在輸入框彈出鍵盤(pán)時(shí),底部元素也不會(huì)被頂上去症汹。
3硫朦、FlatList無(wú)法滾動(dòng)的問(wèn)題
FlatList組件本質(zhì)上是封裝了ScrollView組件,因此很多情況下的滾動(dòng)問(wèn)題是可以參考官方文檔里的解決方案的
記住 ScrollView 必須有一個(gè)確定的高度才能正常工作背镇,因?yàn)樗鼘?shí)際上所做的就是將一系列不確定高度的子組件裝進(jìn)一個(gè)確定高度的容器(通過(guò)滾動(dòng)操作)咬展。要給 ScrollView 一個(gè)確定的高度的話花履,要么直接給它設(shè)置高度(不建議),要么確定所有的父容器都有確定的高度挚赊。一般來(lái)說(shuō)我們會(huì)給 ScrollView 設(shè)置flex: 1以使其自動(dòng)填充父容器的空余空間诡壁,但前提條件是所有的父容器本身也設(shè)置了 flex 或者指定了高度,否則就會(huì)導(dǎo)致無(wú)法正常滾動(dòng)荠割,你可以使用元素查看器來(lái)查找具體哪一層高度不正確妹卿。
但除此之外,還有一種可能是FlatList的子組件不支持onPress屬性蔑鹦,將renderItem子組件的最外層修改為T(mén)ouchableOpacity即可夺克。