मैं जेटपैक कम्पोज़ कॉइल का उपयोग करके भरण चौड़ाई और ऑटो ऊंचाई वाली एक छवि दिखाने की कोशिश कर रहा हूं। मैं चाहता हूं कि छवि पूरी चौड़ाई और ऑटो ऊंचाई ले। लेकिन छवि केवल तभी दिख रही है जब मैं एक निश्चित ऊंचाई निर्दिष्ट करता हूं।

Image(
    painter = rememberImagePainter(
        data = post.image
    ),
    contentDescription = null,
    contentScale = ContentScale.Crop,
    modifier = Modifier.fillMaxWidth()
)

मैंने .fillMaxHeight() और .fillMaxSize() के साथ प्रयास किया लेकिन यह काम नहीं कर रहा है। क्या कोई तरीका है जिससे मैं इसे हासिल कर सकता हूं?

3
Jeeva 24 अगस्त 2021, 16:14

2 जवाब

सबसे बढ़िया उत्तर

ऐसा तब होता है जब किसी एक दृश्य width/height की गणना शून्य के रूप में की जाती है, जिसका अर्थ है कि इसे प्रदर्शित नहीं किया जाना चाहिए और इसे डाउनलोड करने की कोई आवश्यकता नहीं है। कंपोज़ ट्रैकर पर इस समस्या में कारणों के बारे में अधिक देखें।

आप size(OriginalSize) को पेंटर builder में जोड़ सकते हैं। यह छवि को लोड करना शुरू करने के लिए बाध्य करेगा।

Image(
    painter = rememberImagePainter(
        data = post.image,
        builder = {
            size(OriginalSize)
        },
    ),
    contentDescription = null,
    contentScale = ContentScale.Crop,
    modifier = Modifier.fillMaxWidth()
)

यह पैरामीटर आपके दृश्य को डाउनलोड करता है और वर्तमान दृश्य के लिए इसे अनुकूलित किए बिना, छवि के पूर्ण आकार की मेमोरी में डाल देता है। इसलिए इसे सावधानी से उपयोग करें, केवल तभी जब आप सुनिश्चित हों कि छवि बहुत बड़ी नहीं होगी और आप वास्तव में आकार संशोधक नहीं जोड़ सकते हैं। सामग्री दृश्य के आधार पर, fillMaxWidth/fillMaxHeight इसके बिना पर्याप्त हो सकता है।

2
Philip Dukhov 24 अगस्त 2021, 16:42

यदि आपकी छवि OriginalSize आपके कंपोज़ेबल के लिए छोटी है तो आप अपने बिल्डर में scale(Scale.FIT) का भी उपयोग कर सकते हैं।

पक्षानुपात को बनाए रखते हुए आपकी छवि आपके कंपोज़ेबल में अधिकतम फिट होगी।

Image(
    rememberImagePainter(
        data = user?.photoUrl?:"",
        builder = {
            size(OriginalSize)
            scale(Scale.FIT)
            transformations(CircleCropTransformation())
        }
    ),
    contentDescription = "Picture",
    contentScale = ContentScale.FillWidth
)
0
elfefe 2 सितंबर 2021, 15:13