问题标签 [custom-renderer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1522 浏览

android - Xamarin 视频播放器组件在 Android 上拉伸视频

我有一个 Xamarin 表单项目,我需要在网格内显示视频,所以我购买了这个视频播放器组件:Octane VideoPlayer

它在 IOS 上运行良好,但在 android 中它不尊重纵横比,许多视频都被拉伸了。

我为此视频播放器尝试了自定义渲染,但没有任何变化,当我设置断点时,我发现渲染代码永远不会到达。

我错过了什么吗?

例子

CS:

自定义渲染:

**

0 投票
0 回答
131 浏览

xamarin - 将 MPVolumeView 包装在 2 个堆栈布局中 (Xamarin.IOS)

我正在创建一个基于通用视图的控件,该视图与基于 iOS MPVolumeView 的自定义渲染器一起使用,这是一个简单的控件,允许您在应用程序中选择音频的备用输出路由(即蓝牙扬声器)。如果我包装在单个堆栈布局中,则代码工作得很好,但如果它在两个堆栈布局中则不行。我的 XAML 看起来像这样......非常基本:

这是我的自定义渲染器的胆量:

使用此 XAML 和代码,当我将页面异步推送到导航堆栈时,页面甚至不会显示。如果我删除其中一个 StackLayouts,它可以正常工作。

我将 CustomRenderer 中的 IOS 控件更改为一个简单的 UILabel 并且效果很好......所以看起来它与将 MPVolumeView 放在 2 StackLayouts 中有关。由于我的应用程序的布局要求,我需要能够做到这一点,而且为什么 1 StackLayout 很好,但 2 不是,而且仅适用于这个本机控件,这没有任何意义。

有任何想法吗?

0 投票
3 回答
35349 浏览

c# - 如何为 Xamarin 表单标签添加边框?

您好 Xamarin Forms 用户,

我已经发现 Xamarin Froms 不支持开箱即用的标签边框。所以经过一番搜索后仍然不知道如何使它成为可能。是否可以使用自定义渲染器添加边框?如果是这样,有人有例子吗?如果没有,是否有人有任何其他开箱即用的想法来实现这一点。

先感谢您

0 投票
1 回答
685 浏览

android - Xamarin Android Custom MasterDetailPage 在页面推送到详细页面(即 NavigaionPage)时未调用 OnLayout

我在这里找到了源代码: https ://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.Android/Renderers/MasterDetailRenderer.cs

并在 Xamarin Forms Android 项目中创建了一个自定义渲染器。我得到了要构建的项目和按预期打开/关闭的菜单以及显示起始详细信息页面。

详细信息页面是 Xamarin.Forms 中的“NavigaionPage”,它实际上只是一个带有一堆代码的 ViewGroup,以使其与 Push/Pop 函数一起使用。

当我推送一个具有自定义渲染器和原生 RelativeLayout 作为子视图的新页面时,页面显示为空白,直到我旋转方向。

在对代码进行一些研究之后,我意识到 OnMeasure 和 OnLayout 都没有在被推送到 NavigationPage / 详细信息页面的页面中调用(推送页面的大小停留在 0x0 直到方向改变)。

我创建了另一个自定义渲染器,但这次是为 NavigationPage 创建的,如下所示:

这个用于详细信息页面/NavigaionPage 的自定义渲染器适用于我推送的页面中的 3 个。

主要/最重要的页面没有完全添加所有的 UI 元素。

被推送但缺少 UI 的页面有一些 UI。以下是页面显示方式的列表:

--- SongViewerLayout : 相对布局

------ 相对布局

--------- ViewerTopBar(绘制除一个以外的所有按钮)

--------- DocumentView(顶部栏和分页之间的空白白点)

--------- ViewerPagination(绘制背景颜色但不绘制页面按钮)

如果我更改方向,缺少的按钮会出现在顶部栏中,页码会显示,并且文档视图会被绘制,但它已关闭。

如果我返回使用 Xamarin.Forms 提供的 MasterDetailPage,则 UI 将按预期加载。

我研究了 Xamarin.Forms 存储库中的代码,但没有一个真正适用于所添加元素的内部工作。换句话说,详细信息页面(在我的例子中是 NavigationPage)被添加到 SetElement(...) 上,并且分配了一些处理程序......但我无法告诉它寻找被推送然后响应的页面。我假设/期望 NavigationPage 可以按预期工作,因为它是 MasterDetailPage / DrawerLayout 的子视图。

注意:似乎有最多问题的视图以编程方式添加并给出“LayoutParamaters”。AXML 中的视图似乎刚刚出现。

  • 在Android中“初始化”布局是否缺少一些东西?我已经在 Android 中制作了本机应用程序,并且不需要做任何特别的事情。

  • 为什么 NavigationPage 上方的 UI 会导致 NavigationPage 不进行标准初始化?

  • 我错过了什么???

编辑:

我在我的 GitHub 帐户上创建了这个问题的工作示例,您可以在此处克隆: https ://github.com/XamarinMonkey/CustomMasterDetail

  1. 构建并运行 CustomMasterDetail.Droid(注意 UI 是 MasterDetailPage)

  2. 点按任何项目

  3. 底部的蓝色条没有页码。

  4. 旋转显示页码的方向。

  5. 停止构建

  6. 注释掉整个类“MainMasterDetailPageRenderer.cs”

  7. 重建/运行应用程序

  8. 点按任何项目

  9. 页码会按预期立即显示,因为它现在使用默认的 MasterDetailPage!

  10. 请给建议!

编辑#2:

感谢一些反馈,这在 6.0 设备中似乎不是问题。我的测试设备是带有 v5.1.1 的“Samsung Galaxy Tab Pro”。不幸的是,我需要这个应用程序回到 4!

编辑#3:

问题必须是在 Android 5.1.1 中以编程方式将视图添加到在 Xamarin.Forms 中膨胀后的本机 RelativeLayout(被推送到 NavigationPage 详细信息页面)。手动调用 Measure / Layout 似乎可以解决问题。但我需要一个更自动化的解决方案。

0 投票
2 回答
1821 浏览

xamarin.ios - 如何使用 Xamarin.forms 访问自定义类中的对象名称?

最近我开始使用 Xamarin.Forms 进行开发。我正在创建一个必须自定义按钮的应用程序,因此我创建了 customButton 类。现在,我想使用 object.name 属性访问自定义类中的按钮,但我无法做到这一点。谁能建议我如何做到这一点。

代码

Android项目中的CustomButton类

谢谢

0 投票
2 回答
1153 浏览

ios - Xamarin Forms:IOS 中的进度条高度问题

我使用 Xamarin Forms PCL 项目创建了一个应用程序,该项目将在 android、ios、windows 10 和 windows 8.1 上运行。

在其中,我使用了一个进度条控件,为了增加它的高度,我制作了它的自定义渲染器。

在 PCL-

在IOS-

我使用这个渲染器来增加进度条的高度。首先我尝试this.Control.Transform = transform;了但我没有为我工作然后我尝试this.Transform = transform;然后它对我有用。

现在我有 5 个进度条一个接一个地垂直堆叠。

看起来像这样-

在此处输入图像描述

在应用 Transform 属性之前,它看起来很完美,但在应用了 transform 属性之后,两个进度条会离开父容器。

0 投票
3 回答
10563 浏览

xamarin - Xamarin 在 Android 中在框架上形成阴影

Xamarin Forms 中的 Frame 类非常有限,不能让我在 Frame 后面看到阴影。我使用以下代码为 iOS 制作了一个自定义渲染器:

在 Android 上做类似的事情给我带来了问题,因为我对 Android 原生的了解有限。谁能告诉我要看什么,也许是一些好的代码示例?我还没有找到任何与此相似的东西。

0 投票
1 回答
1300 浏览

android - 如何让 Xamarin 表单列表视图在 android 上删除后重置自定义视图单元格?

我正在使用自定义视图单元格和渲染器实现滑动删除功能。我有一个像这样的列表视图:

https://i.stack.imgur.com/AzBQk.png

滑动时会显示一个按钮,如下所示

https://i.stack.imgur.com/S87uj.png

但是,在单击删除按钮(成功从列表中删除项目)后,移动到删除单元格位置的视图单元格仍然暴露了删除按钮:

https://i.stack.imgur.com/aMwux.png

有人知道如何阻止这种情况发生吗?我的自定义渲染器只是公开了 OnFling() 和 OnScroll() 事件。

我也尝试过使用 Xamarin 表单 Pan Gesture Recogniser 进行类似的操作,并遇到了同样的问题。

编辑 1:添加了代码片段

自定义视图单元格 xaml

自定义视图单元 .cs:

查看型号:

XAML:

0 投票
2 回答
6868 浏览

c# - Entry Xamarin Forms PCL 上的边界半径

有没有办法在 Xamarin 的 XAML 中的条目上设置边框半径,或者使用自定义渲染器之类的?

到目前为止我尝试过的一切都没有效果,但对于我的应用程序来说,如果我有圆形边框会更好。

预先感谢您的回答!

PS:我已经检查过这篇文章,但我没有在那里找到我的答案:)

0 投票
0 回答
460 浏览

xamarin - 如何在 Xamarin.Forms 的 TabbedPage 上方添加内容?

我需要在 aContentView上方添加 a TabbedPage,因此在 Android 中它将位于选项卡上方,而在 iOS 中它将位于每个页面的内容上方。可以使用自定义渲染器TabbedPage或任何其他方式完成吗?如果是,我该怎么做?