Подтвердить что ты не робот

Как частично сократить разделительную линию ViewCell в Xamarin Forms?

Я использую ViewCell для создания строк на странице настроек таблицы. У меня есть настройка для выбора темы Light или Dark.

<ViewCell Height="50">
    <StackLayout x:Name="darkTheme" VerticalOptions="FillAndExpand" Padding="20,0,20,0">
        <StackLayout Orientation="Horizontal" VerticalOptions="CenterAndExpand">
            <Label Text="Dark" XAlign="Center" FontSize="15"/>
            <Label x:Name="darkThemeCheckmark" Text="{x:Static local:FontAwesome.FACheck}" FontFamily="FontAwesome" XAlign="Center" IsVisible="false" FontSize="12" HorizontalOptions="EndAndExpand"/
        </StackLayout>
    </StackLayout>
</ViewCell>
<ViewCell Height="50">
    <StackLayout x:Name="lightTheme" VerticalOptions="FillAndExpand" Padding="20,0,20,0">
        <StackLayout Orientation="Horizontal" VerticalOptions="CenterAndExpand">
            <Label Text="Light" XAlign="Center" FontSize="15"/>
            <Label x:Name="lightThemeCheckmark" Text="{x:Static local:FontAwesome.FACheck}" FontFamily="FontAwesome" XAlign="Center" IsVisible="false" FontSize="12"/>
        </StackLayout>
    </StackLayout>
</ViewCell>

Всякий раз, когда я переключаюсь из темной в светлую тему, на левой стороне между моими строками есть слабая светлая линия, от которой я не могу избавиться. Пожалуйста, обратитесь к изображениям ниже:

введите описание изображения здесь

введите описание изображения здесь

В моем рендерере я установил следующее:

tableView.LayoutMargins = new UIEdgeInsets() { Left = 20 };
cell.SeparatorInset = new UIEdgeInsets() { Left = 20 };
cell.LayoutMargins = new UIEdgeInsets() { Left = 20 };

Кто-нибудь знает, как избавиться от этой строки?

Изменить:

Я хотел, чтобы это выглядело следующим образом: введите описание изображения здесь

4b9b3361

Ответ 1

Я новичок в xamarin, но, согласно этому сообщению, вам нужно сделать это в UITableView и в подклассах UITableViewCell.

Надеюсь, это поможет вам. :)

Ответ 2

Извините заранее, что вы уже это рассмотрели, но я считаю, что то, что вы ищете, это "TableView.SeparatorInset", это применимо к вашему рендерингу, а не к xaml, используемому вами в вашем PCL. Вы можете найти документацию по стилизации табличных представлений на этой ссылке.

например.

TableView.SeparatorInset.InsetRect(new CGRect(4, 4, 150, 2));

Перемещение вставки сеператора обойдется вокруг проблемы, которую я видел, как вы упомянули в комментариях к другому ответу об изменении всей таблицы. Пожалуйста, дайте мне знать, если вы уже пробовали это, это самое простое решение, но есть другие варианты, доступные вам. (Они просто не так хороши).

Изменить: пример способа достижения ваших целей, создав своих собственных разделителей, а не мой любимый, но также решит проблему, которую вы выделили, поскольку у вас будет полный контроль над стилем отдельного пользователя. Обратитесь к этому Ссылка