Android 在ListView中使用时,可选文本视图不起作用

Android 在ListView中使用时,可选文本视图不起作用,android,listview,xamarin,textview,xamarin.android,Android,Listview,Xamarin,Textview,Xamarin.android,为了启用文本选择和自动链接功能,我为Xamarin表单标签控件创建了自定义渲染器。它工作得很好。但当我在ListView中使用控件时,它不会触发选择模式。当我长按文本时,我在输出窗口中看到以下消息 W/TextView(2440):TextView不支持文本选择。操作模式已取消 关于如何在ListView中实现这一点,有什么想法吗 下面是我对该控件的实现 PCL中的控件定义 public class LinkLabel:Label { } Android自定义渲染器 clas

为了启用文本选择和自动链接功能,我为Xamarin表单标签控件创建了自定义渲染器。它工作得很好。但当我在ListView中使用控件时,它不会触发选择模式。当我长按文本时,我在输出窗口中看到以下消息

W/TextView(2440):TextView不支持文本选择。操作模式已取消

关于如何在ListView中实现这一点,有什么想法吗

下面是我对该控件的实现

PCL中的控件定义

 public class LinkLabel:Label
    {
    }
Android自定义渲染器

class LinkLabelRenderer : LabelRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
    {
        base.OnElementChanged(e);

        if (e.NewElement != null)
        {
            if (Control != null)
            {
                Control.AutoLinkMask = Android.Text.Util.MatchOptions.All;
                Control.SetTextIsSelectable(true);
                Control.Focusable = true;
                Control.FocusableInTouchMode = true;

               //line below was required to make autodetected links clickable when used inside a ListView. Worked fine outside ListView without this line.
                Control.MovementMethod = LinkMovementMethod.Instance;

            }
        }
    }

}
类LinkLabelRenderer:LabelRenderer { 受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e) { 基础。一个要素发生变化(e); if(例如NewElement!=null) { if(控件!=null) { Control.AutoLinkMask=Android.Text.Util.MatchOptions.All; Control.SetTextIsSelectable(true); Control.Focusable=true; Control.FocusableInTouchMode=true; //当在ListView中使用时,需要使用下面的行来使自动检测到的链接可单击。在ListView之外没有这一行时工作正常。 Control.MovementMethod=LinkMovementMethod.Instance; } } } } 这就是我的xaml查找ListView的方式,我在ViewCell中使用LinkLabel控件

   <ListView x:Name="NotesListView"
              ItemsSource="{Binding Notes}"
              HasUnevenRows="True" >

      <ListView.ItemTemplate>
        <DataTemplate>
          <ViewCell>

              <StackLayout Spacing="4"
                           VerticalOptions="CenterAndExpand" >

                <!--Notes-->

                <Controls:LinkLabel Text="{Binding Notes}" 
                       Style="{StaticResource ListItemHeader}"/>
                <Label Text="{Binding FormattedDetails}"
                         Style="{StaticResource ListItemDetail}"/>
              </StackLayout>

          </ViewCell>
        </DataTemplate>
      </ListView.ItemTemplate>
    </ListView>


我已经使用了你的代码,我可以使用。请参考我的@MikeMa谢谢,我下载了你的repo,并在Kitkat和棒棒糖模拟器上试用了它。它不起作用。但过了一段时间,我看到它开始工作了。然后我意识到一个有趣的模式;标签上的选择仅在单击条目控件后生效。但是,如果您不与入口控件交互并尝试选择标签,它将无法工作。你介意检查一下你是否看到同样的行为吗。你可以尝试删除入口控制,看看是否有效,还有你在哪个安卓版本上试用过这个?我在安卓6.0API级别23和安卓5.0API级别21上试用过,效果很好。只需点击链接标签,so网站就会打开。这两个模拟器都是google emulator,而不是xamarin emulator。如果您不介意,我可以在答案中添加gif图片。@MikeMa问题不在于链接,链接工作正常。这个问题是我无法在长按文本视图中选择文本。