Как можно уменьшить пространство между текстом и изображением на кнопке на андроиде - PullRequest
0 голосов
/ 01 ноября 2019

enter image description here У меня есть кнопка с изображением и текстом под изображением, я хочу уменьшить расстояние между ними на Android, на iOS нет пробелов между ними, вотчто я сделал:

  <Grid x:Name="MainGrid">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="auto" />
                            <RowDefinition Height="auto" />

                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>

                        <Button x:Name="btnApplyLeave"  ContentLayout="Top,0" BackgroundColor="White"  FontSize="10" TextColor="#777777"" ImageSource="applyleave.png" BorderWidth="1" BorderColor ="#ededed" Text="Apply Leave" Grid.Row="0" Grid.Column="0" VerticalOptions="Center" HorizontalOptions="Fill" HeightRequest="{Binding Width, Source={x:Reference btnApplyLeave}}" >
                            <Button.CornerRadius>
                                <OnPlatform Android="6">

                                </OnPlatform>
                            </Button.CornerRadius>
                        </Button>

                        <Button x:Name="captureIntent" ContentLayout="Top,0" ImageSource="capturescores.png" Text="Capture Scores" TextColor="#777777 FontSize="10" BorderWidth="1" BorderColor ="#ededed" BackgroundColor="White" Grid.Row="0" Grid.Column="1" VerticalOptions="Center" HorizontalOptions="Fill" HeightRequest="{Binding Width, Source={x:Reference captureIntent}}" >
                            <Button.CornerRadius>
                                <OnPlatform Android="6">

                                </OnPlatform>
                            </Button.CornerRadius>
                        </Button>
                    </Grid>

Ответы [ 2 ]

2 голосов
/ 01 ноября 2019

Я обнаружил, что эта проблема реализована на ContentLayout на платформе Android.

enter image description here

Если установить значение spacing на-200 в платформе Android Мы можем уменьшить расстояние.

if (Device.RuntimePlatform == Device.Android)
        {
            btnApplyLeave.ContentLayout = new Button.ButtonContentLayout(Button.ButtonContentLayout.ImagePosition.Top, -200);
        }
1 голос
/ 01 ноября 2019

Я не уверен, как это сделать с помощью одной кнопки, но вы можете создать кадр с помощью TapGestureRecognizer, который будет действовать как кнопка. В TapGestureRecognizer есть как Tapped (как нажатие на кнопку), так и Command для MVVM. Код нуждается в некоторой корректировке в вашем проекте, но вы поняли:

    <Frame HeightRequest="{Binding yourHeight}" CornerRadius="6" HasShadow="false" 
           BackgroundColor="White" BorderColor="#ededed" HorizontalOptions="Fill">
        <Frame.GestureRecognizers>
            <TapGestureRecognizer />
        </Frame.GestureRecognizers>
        <Image Source="image.png" HorizontalOptions="Center" VerticalOptions="Center"/>
        <Label Text="TestText" HorizontalOptions="Center" VerticalOptions="Center"/>
    </Frame>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...