Ответ 1
Я новичок в xamarin, но, согласно этому сообщению, вам нужно сделать это в UITableView и в подклассах UITableViewCell.
Надеюсь, это поможет вам. :)
Я использую 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 };
Кто-нибудь знает, как избавиться от этой строки?
Изменить:
Я хотел, чтобы это выглядело следующим образом:
Я новичок в xamarin, но, согласно этому сообщению, вам нужно сделать это в UITableView и в подклассах UITableViewCell.
Надеюсь, это поможет вам. :)
Извините заранее, что вы уже это рассмотрели, но я считаю, что то, что вы ищете, это "TableView.SeparatorInset", это применимо к вашему рендерингу, а не к xaml, используемому вами в вашем PCL. Вы можете найти документацию по стилизации табличных представлений на этой ссылке.
например.
TableView.SeparatorInset.InsetRect(new CGRect(4, 4, 150, 2));
Перемещение вставки сеператора обойдется вокруг проблемы, которую я видел, как вы упомянули в комментариях к другому ответу об изменении всей таблицы. Пожалуйста, дайте мне знать, если вы уже пробовали это, это самое простое решение, но есть другие варианты, доступные вам. (Они просто не так хороши).
Изменить: пример способа достижения ваших целей, создав своих собственных разделителей, а не мой любимый, но также решит проблему, которую вы выделили, поскольку у вас будет полный контроль над стилем отдельного пользователя. Обратитесь к этому Ссылка