Как удалить эту стрелку или изображение из IOS ListView в формах Xamarin - PullRequest
0 голосов
/ 17 мая 2019

когда я пишу просмотр списка в формах xamarin, этот значок автоматически добавляется в IOS, а его нет в Android

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

вот код, который я использовал для пользовательского рендеринга

[assembly: ExportRenderer(typeof(ViewCell), 
typeof(StandardViewCellRenderer))]
namespace Sample.iOS.Renderers.RevisedRenderer
{
 public class StandardViewCellRenderer : ViewCellRenderer
  {
    public override UIKit.UITableViewCell GetCell(Cell item, 
     UIKit.UITableViewCell reusableCell, UIKit.UITableView tv)
    {
        var cell = base.GetCell(item, reusableCell, tv);
        switch (item.StyleId)
        {
            case "none":
                cell.Accessory = UIKit.UITableViewCellAccessory.None;
                break;
            case "checkmark":
                cell.Accessory = UIKit.UITableViewCellAccessory.Checkmark;
                break;
            case "detail-button":
                cell.Accessory = 
          UIKit.UITableViewCellAccessory.DetailButton;
                break;
            case "detail-disclosure-button":
                cell.Accessory = 
   UIKit.UITableViewCellAccessory.DetailDisclosureButton;
                break;
            case "disclosure":
            default:
                cell.Accessory = 
        UIKit.UITableViewCellAccessory.DisclosureIndicator;
                break;
        }
        return cell;
    }
}
 }

, дайте мне знать, что нужно изменить или добавить, чтобы он работал

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Причина:

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

Рендерер представленияполучил вызов в вашем проекте, в то время как код внутри Switch statement никогда не выполнялся, потому что item.StyleId всегда равен нулю.Вы можете добавить точку останова, чтобы проверить ее.

Решение:

Если вы хотите удалить стрелку, просто установите cell.Accessory = UIKit.UITableViewCellAccessory.None;.

class StandardViewCellRenderer : ViewCellRenderer
{
    public override UIKit.UITableViewCell GetCell(Cell item,
 UIKit.UITableViewCell reusableCell, UIKit.UITableView tv)
    {
        var cell = base.GetCell(item, reusableCell, tv);

        Console.WriteLine(item.StyleId);

        cell.Accessory = UIKit.UITableViewCellAccessory.None;

   //     switch (item.StyleId)
   //     {
   //         case "none":
   //             cell.Accessory = UIKit.UITableViewCellAccessory.None;
   //             break;
   //         case "checkmark":
   //             cell.Accessory = UIKit.UITableViewCellAccessory.Checkmark;
   //             break;
   //         case "detail-button":
   //             cell.Accessory =
   //       UIKit.UITableViewCellAccessory.DetailButton;
   //             break;
   //         case "detail-disclosure-button":
   //             cell.Accessory =
   //UIKit.UITableViewCellAccessory.DetailDisclosureButton;
   //             break;
   //         case "disclosure":
   //         default:
   //             cell.Accessory =
   //     UIKit.UITableViewCellAccessory.DisclosureIndicator;
   //             break;
   //     }
        return cell;
    }
}

Если вы хотите отображать ячейки с другим стилем cell.Accessory, вы можете создать собственное свойство вместо StyleId.

Я также загрузил демо здесь .

1 голос
/ 17 мая 2019

удалите ваш переключатель и оставьте код следующим образом: var cell = base.GetCell (item, reusableCell, tv);

ячейка .Accessory = UITableViewCellAccessory.DisclosureIndicator;

Более подробную информацию вы можете получить по адресу: https://forums.xamarin.com/discussion/88286/xamarin-viewcell-how-to-turn-off-right-arrow-meant-for-touch-action

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...