渲染器获得当前焦点
Renderer get current focus
我创建了一个简单的 Renderer
,看起来像这样
using Android.Runtime;
using Android.Widget;
using Example.Pages.MaterialPages;
using Example.Droid.Renderers;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
[assembly: ExportRenderer(typeof(MaterialsListView), typeof(MaterialsListViewRenderer))]
namespace Example.Droid.Renderers
{
public class MaterialsListViewRenderer : ListViewRenderer
{
public MaterialsListViewRenderer() {}
}
internal class ScrollListener : Java.Lang.Object, AbsListView.IOnScrollListener
{
public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { }
public void OnScrollStateChanged(AbsListView view, [GeneratedEnum] ScrollState scrollState)
{
if (scrollState == ScrollState.TouchScroll)
{
// GET THE CURRENT FOCUSED ELEMENT
}
}
}
}
现在我需要像 Java 中的 getCurrentFocus
那样获取当前焦点。
但是我如何在 Xamarin 中执行此操作?
您需要将 ListView
的 Context
转换为 Activity
。
internal class ScrollListener : Java.Lang.Object, AbsListView.IOnScrollListener
{
public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { }
public void OnScrollStateChanged(AbsListView view, [GeneratedEnum] ScrollState scrollState)
{
if (scrollState == ScrollState.TouchScroll)
{
// GET THE CURRENT FOCUSED ELEMENT
var focused = ((Activity) view.Context).CurrentFocus;
}
}
}
我创建了一个简单的 Renderer
,看起来像这样
using Android.Runtime;
using Android.Widget;
using Example.Pages.MaterialPages;
using Example.Droid.Renderers;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
[assembly: ExportRenderer(typeof(MaterialsListView), typeof(MaterialsListViewRenderer))]
namespace Example.Droid.Renderers
{
public class MaterialsListViewRenderer : ListViewRenderer
{
public MaterialsListViewRenderer() {}
}
internal class ScrollListener : Java.Lang.Object, AbsListView.IOnScrollListener
{
public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { }
public void OnScrollStateChanged(AbsListView view, [GeneratedEnum] ScrollState scrollState)
{
if (scrollState == ScrollState.TouchScroll)
{
// GET THE CURRENT FOCUSED ELEMENT
}
}
}
}
现在我需要像 Java 中的 getCurrentFocus
那样获取当前焦点。
但是我如何在 Xamarin 中执行此操作?
您需要将 ListView
的 Context
转换为 Activity
。
internal class ScrollListener : Java.Lang.Object, AbsListView.IOnScrollListener
{
public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { }
public void OnScrollStateChanged(AbsListView view, [GeneratedEnum] ScrollState scrollState)
{
if (scrollState == ScrollState.TouchScroll)
{
// GET THE CURRENT FOCUSED ELEMENT
var focused = ((Activity) view.Context).CurrentFocus;
}
}
}