Создать TableView в Xamarin C # Visual Studio

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

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

браузерная quirk, которая позволяет нам обходить одну и ту же политику происхождения - javascript может связываться либо со страницами в своем собственном домене, либо со страницами, на которых он имеет iframed, но никогда не страницы, в которых он создан, например если у вас есть:

 www.foo.com/home.html, which iframes
 |-> www.bar.net/framed.html, which iframes
     |-> www.foo.com/helper.html

, тогда home.html может связываться с framed.html (iframed) и helper.html (тот же домен).

 Communication options for each page:
 +-------------------------+-----------+-------------+-------------+
 |                         | home.html | framed.html | helper.html |
 +-------------------------+-----------+-------------+-------------+
 | www.foo.com/home.html   |    N/A    |     YES     |     YES     |
 | www.bar.net/framed.html |    NO     |     N/A     |     YES     |
 | www.foo.com/helper.html |    YES    |     YES     |     N/A     |
 +-------------------------+-----------+-------------+-------------+

framed.html может отправлять сообщения в helper.html (iframed), но not home.html (дочерний объект не может связываться с кросс-доменом с родителем).

Ключ здесь в том, что helper.html может получать сообщения от framed.html, а также может общаться с home.html.

Таким образом, по существу, когда framed.html загружается, он выдает свою собственную высоту, сообщает helper.html, который передает сообщение на home.html, которое затем может изменять размер iframe, в котором framed.html сидит ,

Самый простой способ передачи сообщений с framed.html на helper.html был через URL-адрес. Для этого framed.html имеет iframe с указанным src=''. Когда его onload срабатывает, он оценивает собственную высоту и устанавливает src iframe в этой точке на helper.html?height=N

. Здесь есть объяснение того, как facebook обрабатывает его , который может быть немного яснее моего выше!

Код

В www.foo.com/home.html требуется следующий код javascript (это может быть загружено из файла .js в любом домене, кстати ..):



В www.bar.net/framed.html:





Содержание www.foo.com/helper.html:

 
 
   
     
   

0
задан Mario Mitterbauer 15 January 2019 в 18:06
поделиться

1 ответ

Я предполагаю, что вы копируете Пример на странице Xamarin. Ошибки, с которыми вы сталкиваетесь, заключаются в том, что вы не создаете ViewCell для TableView.

Вот рабочий пример, с которого стоит начать.

var table = new TableView();
table.Intent = TableIntent.Settings;
var layout = new StackLayout() { Orientation = StackOrientation.Horizontal };
layout.Children.Add (new Label() {
    Text = "TestLayout",
    TextColor = Color.FromHex("#f35e20"),
    VerticalOptions = LayoutOptions.Center
});

table.Root = new TableRoot () {
    new TableSection("Getting Started") {
        new ViewCell() {View = layout}
    }
};

Content = table;
0
ответ дан Bruno Caceiro 15 January 2019 в 18:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: