使用React Navigation注意事项有哪些
这次给大家带来使用React Navigation注意事项有哪些,使用React Navigation的注意事项有哪些,下面就是实战案例,一起来看一下。
在React Native的开发中,使用到react navigation框架时遇到了不少问题。主要是安卓和iOS中相对不协调的地方,特此记录
一、Navigation Bar
使用navigationbar的时候遇到如下的问题
1.navigation bar的底部有一条黑线
本意做一个bar的颜色和页面颜色一致的页面。只有顶部有两个其他按钮的时候。发现bar的底部有一条黑线。导致bar不能很好的匹配想要的页面效果。在header中设置一下代码中后可去除
static navigationOptions = { ... headerStyle: { ... borderBottomWidth: 0, }, }
2. android 的 Bar底部有一条阴影,自定义Bar背景图无法填充满
react navigation bar在安卓中默认会有一个高度。带来的视觉效果是底部会有一条阴影。而且造成另外一个比较头疼的效果是如果使用了带背景图的自定义Bar时。会发现背景图有覆盖不全的效果。两侧总有一些间隙。iOS中则不会出现此问题。将elevation属性置零后可解决这个问题
static navigationOptions = { ... headerStyle: { ... elevation: 0, }, }
3.android 中Bar标题居中问题
在安卓中,bar 的标题是居左的。iOS则默认居中。可以通过以下写法居中
static navigationOptions = { ... headerTitleStyle: { //此属性是标题的Style属性。可以接受<Text>标签的style ... alignSelf: "center", }, }
在左侧没有按键的时候。这样写就足够了。但是如果左侧有个返回键或者自定义的其他按键。在安卓中标题就会发生偏移。解决办法是右侧添加一个空按钮
static navigationOptions = { ... headerRight: <View /> }
4.带背景图的Navgation Bar
与源生不同。react navigation bar中并没有背景图这一属性。也就是说我们要使用带背景图的navigation bar的时候必须要使用自定义的view。
import {Header} from "react-navigation"; //header 需导入 const ImageHeader = props => ( <View> <Image style={{position: "absolute", zIndex: -1, width: "100%", height: "100%", resizeMode: "cover"}} source={require(...)} /> <Header {...props} style={{backgroundColor: "transparent"}} /> </View> ); static navigationOptions = { ... headerStyle: { //背景颜色必须为透明,不然无法透出底部图片 backgroundColor: "transparent", //安卓中不添加此属性会导致背景图无法铺满 elevation: 0, }, header: props => { return <ImageHeader {...props} />; }, }
5.当StackNavigator与DrawerNavigator嵌套使用时手势冲突问题
当DrawerNavigator嵌套StackNavigator时。进入StackNav的二级界面后返回手势与打开DrawerNav打开菜单冲突。
static navigationOptions = { ... //禁止打开菜单 drawerLockMode: "locked-closed", //允许使用返回手势 gesturesEnabled: true, }
此设置按照需求自行修改
5.Navgation Bar高度不一致问题
使用自定义的Bar时。安卓和iOS高度不一致。Android计算Nav高度是从手机顶部开始计算。而iOS默认会向下偏移状态栏的高度。要做到效果统一。需要将安卓的Bar的paddingTop属性设为状态栏高度
import {StatusBar, Platform} from "react-native"; navigationOptions = { ... headerStyle: { ... paddingTop: Platform.OS === "ios" ? 0 : StatusBar.currentHeight, }, }
6.navigation Bar上使用自定义按钮
使用headerRight 或者 headerLeft 可以定制按钮或者View
static navigationOptions = { ... headerRight = (<TouchableOpacity style={{marginRight: 10}} onPress={...}> <Text style={styles.NavSureButton}>btn</Text> </TouchableOpacity>) }
但是如果onPress方法要用到this.props、this.state或者是类中的其他方法的时候就会出现问题
在每个页面的类中,我们使用static navigationOptions={...}来配置navigation的一些配置。但是由于static 修饰的属性属于类的静态属性。无法调用this的属性方法。所以我们需要使用this.props.navigation.setParams({key:value ...})方法来设置header按钮的点击事件。
class Demo extends React,Component{ componentWillMount() { //绑定方法 this.props.navigation.setParams({rightOnPress: this.rightBtnOnPress}); } //点击方法 rightBtnOnPress = ()=>{ ... } static navigationOptions = ({navigation}) => { const params = navigation.state.params || {}; let navigationOptions = { ... headerRight = (<TouchableOpacity style={{marginRight: 10}} onPress={params.rightOnPress}> <Text style={styles.NavSureButton}>btn</Text> </TouchableOpacity>) } return navigationOptions; }; ... }
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Atas ialah kandungan terperinci 使用React Navigation注意事项有哪些. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Semasa ujian Mingchao, sila elakkan naik taraf sistem, tetapan semula kilang dan penggantian alat ganti untuk mengelakkan kehilangan maklumat dan log masuk permainan yang tidak normal. Peringatan khas: Tiada saluran rayuan semasa tempoh ujian, jadi sila kendalikannya dengan berhati-hati. Pengenalan kepada perkara yang memerlukan perhatian semasa ujian Mingchao: Jangan tingkatkan sistem, pulihkan tetapan kilang, ganti komponen peralatan, dsb. Nota: 1. Sila tingkatkan sistem dengan teliti semasa tempoh ujian untuk mengelakkan kehilangan maklumat. 2. Jika sistem dikemas kini, ia mungkin menyebabkan masalah tidak dapat log masuk ke permainan. 3. Pada peringkat ini, saluran rayuan masih belum dibuka Pemain dinasihatkan untuk memilih sama ada untuk menaik taraf mengikut budi bicara mereka sendiri. 4. Pada masa yang sama, satu akaun permainan hanya boleh digunakan dengan satu peranti Android dan satu PC. 5. Adalah disyorkan agar anda menunggu sehingga ujian selesai sebelum menaik taraf sistem telefon mudah alih atau memulihkan tetapan kilang atau menggantikan peranti.

Dengan kebangkitan platform video pendek, Douyin telah menjadi bahagian yang sangat diperlukan dalam kehidupan seharian ramai orang. Penyiaran langsung di Douyin dan berinteraksi dengan peminat adalah impian ramai pengguna. Jadi, bagaimanakah anda memulakan siaran langsung di Douyin buat kali pertama? 1. Bagaimana untuk memulakan siaran langsung di Douyin buat kali pertama? 1. Persediaan Untuk memulakan siaran langsung, anda perlu memastikan bahawa akaun Douyin anda telah melengkapkan pengesahan nama sebenar. Anda boleh menemui tutorial pengesahan nama sebenar dalam "Saya" -> "Tetapan" -> "Akaun dan Keselamatan" dalam APP Douyin. Selepas melengkapkan pengesahan nama sebenar, anda boleh memenuhi syarat siaran langsung dan memulakan siaran langsung pada platform Douyin. 2. Mohon kebenaran siaran langsung Selepas memenuhi syarat siaran langsung, anda perlu memohon kebenaran siaran langsung. Buka APP Douyin, klik "Saya" -> "Pusat Pencipta" -> "Terus

Kaedah dan langkah berjaga-jaga untuk memasang pip dalam persekitaran luar talian Memasang pip menjadi cabaran dalam persekitaran luar talian di mana rangkaian tidak lancar. Dalam artikel ini, kami akan memperkenalkan beberapa kaedah memasang pip dalam persekitaran luar talian dan memberikan contoh kod khusus. Kaedah 1: Gunakan pakej pemasangan luar talian Dalam persekitaran yang boleh menyambung ke Internet, gunakan arahan berikut untuk memuat turun pakej pemasangan pip daripada sumber rasmi: pipdownloadpip Perintah ini akan memuat turun pip dan pakej bergantungnya secara automatik daripada sumber rasmi dan simpan dalam direktori semasa. Alihkan pakej termampat yang dimuat turun ke lokasi terpencil

PHP, Vue dan React: Bagaimana untuk memilih rangka kerja bahagian hadapan yang paling sesuai? Dengan pembangunan berterusan teknologi Internet, rangka kerja bahagian hadapan memainkan peranan penting dalam pembangunan Web. PHP, Vue dan React ialah tiga rangka kerja bahagian hadapan yang mewakili, masing-masing mempunyai ciri dan kelebihan tersendiri. Apabila memilih rangka kerja bahagian hadapan yang hendak digunakan, pembangun perlu membuat keputusan termaklum berdasarkan keperluan projek, kemahiran pasukan dan pilihan peribadi. Artikel ini akan membandingkan ciri dan penggunaan tiga rangka kerja bahagian hadapan PHP, Vue dan React.

Langkah dan langkah berjaga-jaga untuk menggunakan localStorage untuk menyimpan data Artikel ini memperkenalkan terutamanya cara menggunakan localStorage untuk menyimpan data dan menyediakan contoh kod yang berkaitan. LocalStorage ialah cara menyimpan data dalam penyemak imbas yang menyimpan data setempat ke komputer pengguna tanpa melalui pelayan. Berikut ialah langkah dan perkara yang perlu diberi perhatian apabila menggunakan localStorage untuk menyimpan data. Langkah 1: Semak sama ada penyemak imbas menyokong LocalStorage

Penyepaduan rangka kerja Java dan rangka kerja React: Langkah: Sediakan rangka kerja Java bahagian belakang. Buat struktur projek. Konfigurasikan alat binaan. Buat aplikasi React. Tulis titik akhir REST API. Konfigurasikan mekanisme komunikasi. Kes praktikal (SpringBoot+React): Kod Java: Tentukan pengawal RESTfulAPI. Kod tindak balas: Dapatkan dan paparkan data yang dikembalikan oleh API.

Langkah-langkah pemasangan dan langkah berjaga-jaga pip dalam persekitaran Linux Tajuk: Langkah-langkah pemasangan dan langkah berjaga-jaga pip dalam persekitaran Linux Semasa membangunkan Python, kita selalunya perlu menggunakan perpustakaan pihak ketiga untuk meningkatkan kefungsian program. Sebagai alat pengurusan pakej standard untuk Python, pip boleh memasang, menaik taraf dan mengurus perpustakaan pihak ketiga ini dengan mudah. Artikel ini akan memperkenalkan langkah-langkah untuk memasang pip dalam persekitaran Linux, dan menyediakan beberapa langkah berjaga-jaga dan contoh kod khusus untuk rujukan. 1. Pasang pip untuk menyemak versi Python

Nota dan Soalan Lazim tentang pernyataan pertanyaan kumpulan MyBatis Pengenalan MyBatis ialah rangka kerja lapisan kegigihan yang sangat baik yang menyokong operasi pangkalan data yang fleksibel dan cekap. Antaranya, pertanyaan kelompok adalah keperluan biasa Dengan menanyakan beberapa keping data pada satu masa, overhed sambungan pangkalan data dan pelaksanaan SQL boleh dikurangkan, dan prestasi sistem boleh dipertingkatkan. Artikel ini akan memperkenalkan beberapa langkah berjaga-jaga dan masalah biasa dengan pernyataan pertanyaan kelompok MyBatis, dan memberikan contoh kod khusus. Harap ini dapat memberikan sedikit bantuan kepada pembangun. Perkara yang perlu diperhatikan apabila menggunakan M
