在智能手机和模拟器屏幕上显示 Xamarin Forms 中的文本和元素时出现问题

问题描述 投票:0回答:1

我遇到了 Xamarin Forms 的问题,即并非所有文本都显示在标签中,并且屏幕外的元素也不会显示。旋转智能手机可以暂时解决该问题,直到重新加载数据或应用程序更新数据。这个问题在模拟器和实际的智能手机上都会发生,并且会在不同的项目中发生。

加载时显示:

在此输入图片描述

改变方向时显示:

在此输入图片描述

方向返回时显示:

在此输入图片描述

我已经尝试使用以下方法解决问题:

  1. 更改字体大小:
    Table Label.Font Size = Device.GetNamedSize(Name Size.Small, type of(Label));
  2. 使用换行模式:
    Table Label.lineBreakMode = lineBreakMode.WordWrap;
  3. 设置水平选项和垂直选项:
    Table Label.HorizontalOptions = LayoutOptions.FillAndExpand;
    TableLabel.VerticalOptions = LayoutOptions.FillAndExpand;

xaml代码:

    <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Raspisanie.MainPage">
    <ScrollView>
        <StackLayout>
            <StackLayout>
                <Button Text="ChangingSides" Clicked="ChangingSidesClicked"/>
                <StackLayout Orientation="Horizontal" HorizontalOptions="Start">
                    <Button Text="Previous table" Clicked="OnPreviousClicked"/>
                    <Button Text="Next table" Clicked="OnNextClicked"/>
                </StackLayout>
            </StackLayout>
            <Label x:Name="TableLabel" Text="The table will be displayed here"/>
        </StackLayout>
    </ScrollView>

</ContentPage>

cs代码:

string responseData = await response.Content.ReadAsStringAsync();
TableLabel.Text = responseData;

cs不影响显示,因为只创建元素时会出现显示问题

xamarin xamarin.forms xamarin.android
1个回答
0
投票
Xamarin.Forms 中的 Method.ForceLayout() 用于强制更新元素及其子元素的布局。当您调用此方法时,它会强制元素再次经历布局过程,如果您更改了影响其大小或位置的元素属性并希望更改立即生效,这会很有用。

这是一个使用示例:

your View.ForceLayout();


此方法在没有自动布局更新且需要手动启动布局重新计算的情况下非常有用。

© www.soinside.com 2019 - 2024. All rights reserved.