android 怎么在自定义控件中获取控件所在fragment的实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 怎么在自定义控件中获取控件所在fragment的实例相关的知识,希望对你有一定的参考价值。
在构造方法,或者set方法等注入fragment,类似很多自定义控件使用Context一样。可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块。
使用Fragment时,需要继承Fragment或者Fragment的子类(DialogFragment, ListFragment, PreferenceFragment, WebViewFragment)。 参考技术A getFragmentManager().findFragmentById(id).getView().findViewById(id)
这样应该就可以了本回答被提问者和网友采纳
获取“调用的目标已引发异常。”在自定义控件中
【中文标题】获取“调用的目标已引发异常。”在自定义控件中【英文标题】:Getting "Exception has been thrown by the target of an invocation." in custom control 【发布时间】:2017-04-30 03:54:15 【问题描述】:我在 Xamarin 跨平台中创建了自定义条目控件。但不知道为什么异常来了。我哪里做错了?
这是我的代码
CustomEntry.cs
public class CustomEntry : Entry
public static readonly BindableProperty cornerRadiusProperty = BindableProperty.Create("Radius",typeof(double),typeof(CustomEntry),0);
public double CornerRadius
get return (double)GetValue(cornerRadiusProperty);
set SetValue(cornerRadiusProperty, value);
MyXaml 页面
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:cl="clr-namespace:customcontrolapp;assembly=customcontrolapp" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="customcontrolapp.MyXaml" >
<ContentPage.Content>
<cl:CustomEntry Text="Sample" />
</ContentPage.Content>
</ContentPage>
【问题讨论】:
这下面一定有一个异常。仔细检查您的输出窗口。 您将 int 作为默认值,它无法处理为双精度值。尝试 0.0 作为默认值。此外,propertyName 参数设置为Radius
,而您的属性称为CornerRadius
。为此,它们应该匹配。你也可以使用nameof(CornerRadius)
来减少你的魔术字符串使用:)
@StevenThewissen 谢谢..你的建议奏效了!!
【参考方案1】:
我已解决此异常,将链接器选项链接全部更改为 SDK 链接。 谢谢
【讨论】:
以上是关于android 怎么在自定义控件中获取控件所在fragment的实例的主要内容,如果未能解决你的问题,请参考以下文章