اذهب إلى المحتوى

السؤال

نشر

كيف أحصل على حجم View موجود في التطبيق؟ حاولت استخدام Dimensions ولكنها لم تعمل؟

function App() {
	const viewRef = useRef(null);

	const computeSize = event => {
		console.log(viewRef.style.width, viewRef.style.height);
	};

	return (
		<View ref={viewRef}>
			<Button title="Get Size" onPress={computeSize} />
		</View>
	);
}

 

Recommended Posts

  • 0
نشر

يمكنك استخدام الخاصية "onLayout" حيث يتم استدعاؤها عند تركيب المكون وعند كل تغيير.

import * as React from 'react';
import { Text, View, StyleSheet } from 'react-native';

export default function App() {
  const [dimensions, setDimensions] = React.useState({
    width: 0,
    height: 0
  });
  const computeSize = event => {
    setDimensions({
      width: event.nativeEvent.layout.width,
      height: event.nativeEvent.layout.height
    });
  };
  return (
    <View style={styles.container} onLayout={computeSize}>
      <Text>Width: {dimensions.width}px</Text>
      <Text>Height: {dimensions.height}px</Text>
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    borderColor: '#000',
    borderWidth: 1,
    padding: 12
  }
});

 

  • 0
نشر

يمكنك استخدام onLayout event handler بهذه الطريقة للحصول على حجم ال View

function App() {
  const viewRef = useRef(null);

  const getSize = (layout) => {
    const { x, y, width, height } = layout;
  	console.log(x);
    console.log(y);
    console.log(width);
    console.log(height);
  };

  return (
    <View onLayout={(event) => getSize(event.nativeEvent.layout)}>
      <Button title="Get Size" />
    </View>
  );
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...