Apakah mungkin untuk mendapatkan ukuran (lebar dan tinggi) dari tampilan tertentu? Misalnya, saya memiliki pandangan yang menunjukkan kemajuan:
<View ref='progressBar' style={{backgroundColor:'red',flex:this.state.progress}} />
Saya perlu tahu lebar sebenarnya dari tampilan untuk menyelaraskan tampilan lain dengan benar. Apakah ini mungkin?
ios
react-native
Matius
sumber
sumber
View
berbeda tergantung pada dimensi. Saya tidak mengerti bagaimana saya bisa menggunakan fungsi TampilanonLayout
untuk mengubah cara saya menampilkan Tampilan. Bukankah itu mengarah ke loop tak terbatas?onLayout
tidak terkait.Ini adalah satu-satunya hal yang berhasil untuk saya:
sumber
Pada dasarnya jika Anda ingin mengatur ukuran dan membuatnya berubah maka aturlah untuk menyatakan tata letak seperti ini:
Anda dapat membuat lebih banyak variasi tentang bagaimana hal itu harus dimodifikasi, dengan menggunakan ini di komponen lain yang memiliki tampilan lain sebagai pembungkus dan membuat panggilan balik onResponderRelease, yang dapat melewati lokasi acara sentuh ke keadaan, yang kemudian dapat diteruskan ke komponen anak sebagai properti, yang dapat mengesampingkan keadaan diperbarui onLayout, dengan menempatkan
{[styles.View2, this.state.view2LayoutProps, this.props.touchEventTopLeft]}
dan sebagainya.sumber
Anda dapat langsung menggunakan
Dimensions
modul dan menghitung ukuran tampilan Anda. Sebenarnya,Dimensions
berikan kepada Anda ukuran jendela utama.Semoga dapat membantu Anda!
Pembaruan : Hari ini menggunakan yang asli
StyleSheet
dengan Flex mengatur pandangan Anda membantu menulis kode bersih dengan solusi tata letak yang elegan dalam banyak kasus, bukannya menghitung ukuran tampilan Anda ...Meskipun membangun komponen kisi khusus , yang merespons peristiwa pengubahan ukuran jendela utama, dapat menghasilkan solusi yang baik dalam komponen widget sederhana
sumber
Mungkin Anda bisa menggunakan
measure
:sumber
NativeMethodsMixin
. Apa pun yang saya lakukan,measure
selalu tidak terdefinisi. Ada petunjuk?NativeMethodsMixin
fungsi ini hanya tersedia pada beberapa elemen. MisalnyaTouchableWithFeedback
memang memiliki fungsi ukuran, tetapi yang biasaTouchable
tidak. Cobalah untuk mengubah jenis yangView
Anda gunakan, dapatkan referensi dan periksa apakah elemen ukuran tersedia. Saya juga menemukan ini.bagi saya mengatur Dimensi untuk menggunakan% adalah apa yang berhasil bagi saya
width:'100%'
sumber
Berikut adalah kode untuk mendapatkan Dimensi dari tampilan lengkap perangkat.
var windowSize = Dimensions.get("window");
Gunakan seperti ini:
width=windowSize.width,heigth=windowSize.width/0.565
sumber