मेरे पास एक पृष्ठभूमि छवि है जिसे मुझे अपने सामग्री पृष्ठ पर सेट करना है, हालांकि छवि ज़ूम इन है। मुझे इसे पहलू = "भरें" पर होना चाहिए ताकि यह ठीक से दिखाई दे। मैंने ऑनलाइन देखा और समाधान एक छवि के साथ एक निरपेक्ष लयआउट या सापेक्ष लयआउट होना था। लेकिन इसे जोड़ते समय, एक छवि जो पृष्ठ के निचले भाग में होनी चाहिए, वह अब नहीं है।

<RelativeLayout Parent="0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">

    <Image Source="Background.jpg" Aspect="Fill" RelativeLayout.WidthConstraint= "{ConstraintExpression Type=RelativeToParent, Property=Width}"
            RelativeLayout.HeightConstraint= "{ConstraintExpression Type=RelativeToParent, Property=Height}"></Image>

    <StackLayout>

        <Label Text="Timetable" TextColor="Silver" HorizontalOptions="EndAndExpand" Margin="0, 10, 20, 0">
        </Label>

        <Image Margin="15, 20" HorizontalOptions="Center" WidthRequest="350" Source="subtle-logo.png"></Image>

        <Image HorizontalOptions="Center" x:Name="PlayPauseButton" Source="play.png" WidthRequest="75">
        </Image>

        <Image HorizontalOptions="Center" x:Name="shareButton" Source="share-button.png" WidthRequest="50" 
               VerticalOptions="End" Margin="0, 0, 0, 20">
        </Image>

    </StackLayout>

   </RelativeLayout> 

enter image description here

हालांकि, वर्टिकलऑप्शन = "एंड" प्रॉपर्टी के कारण वह शेयर बटन पेज के निचले भाग में होना चाहिए। मैं यह कैसे तय करुं?

0
alexcons 20 पद 2018, 23:07

1 उत्तर

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

AbsoluteLayout प्रदर्शन कारणों से बेहतर है। साथ ही आप AbsoluteLayout के बारे में पूछ रहे हैं, लेकिन आपके द्वारा साझा किए गए कोड में RelativeLayout का उपयोग कर रहे हैं।

भले ही, आपको उस अंतिम छवि के लिए VerticalOptions VerticalOptions="EndAndExpand" की आवश्यकता है जो उपलब्ध स्थान को भरने के लिए क्षेत्र का विस्तार करेगा और फिर छवि को उस क्षेत्र के ऊर्ध्वाधर छोर पर रखेगा।

मूल रूप से Start, Center, End, और Fill लेआउट विकल्प कहते हैं कि उपलब्ध स्थान में तत्व को कहां रखा जाए या उपलब्ध स्थान को भरने के लिए तत्व को बड़ा किया जाए, जहां StartAndExpand, CenterAndExpand, EndAndExpand, और FillAndExpand उपलब्ध स्थान का विस्तार करेंगे, यदि संभव हो, और फिर उस स्थान में आइटम को Start पर सेट करें, Center, आदि। AndExpand विकल्प केवल StackLayout में लागू होते हैं

यदि आप इसके बजाय AbsoluteLayout का उपयोग करना चाहते हैं तो यह कोड है (फ़ॉर्म इंजीनियरिंग टीम द्वारा अनुशंसित):

<AbsoluteLayout>

    <Image Source="Background.jpg" Aspect="AspectFill" AbsoluteLayout.LayoutBounds="0,0,1,1" AbsoluteLayout.LayoutFlags="All" />

    <StackLayout AbsoluteLayout.LayoutBounds="0,0,1,1" AbsoluteLayout.LayoutFlags="All">

        <Label Text="Timetable" TextColor="Silver" HorizontalOptions="EndAndExpand" Margin="0, 10, 20, 0">
        </Label>

        <Image Margin="15, 20" HorizontalOptions="Center" WidthRequest="350" Source="subtle-logo.png"></Image>

        <Image HorizontalOptions="Center" x:Name="PlayPauseButton" Source="play.png" WidthRequest="75">
        </Image>

        <Image HorizontalOptions="Center" x:Name="shareButton" Source="share-button.png" WidthRequest="50" 
               VerticalOptions="EndAndExpand" Margin="0, 0, 0, 20">
        </Image>

    </StackLayout>

</AbsoluteLayout> 
1
jgoldberger - MSFT 20 पद 2018, 21:09