专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

如何在Xamarin中指示当前选定的控件?

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:58:11       共计:3842 浏览

我正在使用的Android设备没有任何触摸屏。它只有一个触摸板,可以生成KEYCODE_DPAD_UP,KEYCODE_DPAD_DOWN等。但是,我不确定我的Xamarin应用程序是否正在响应这些事件。是否有任何设置可以帮助确定一组控件中的当前选择。如何在Xamarin中指示当前选定的控件?

当我进入设备的主屏幕并使用DPad键移动时,我看到当前选中的图标周围有一个很薄的正方形。我希望Xamarin应用程序中有类似的设置来打开此行为。问候。

您可以简单地使用活动的CurrentFocus来获得当前集中控制。但首先,当控制中心,它会被高亮显示,通常我们可以修改控件的背景的绘制状态列表资源,例如:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/button_pressed" /> <!-- pressed --> <item android:state_focused="true" android:drawable="@drawable/button_focused" /> <!-- focused --> <item android:state_hovered="true" android:drawable="@drawable/button_focused" /> <!-- hovered --> <item android:drawable="@drawable/button_normal" /> <!-- default --> </selector> 

这个可视化行为是一个按钮,表示用户导航到控件。

当我走到设备的主屏幕并使用DPad键移动时,我看到当前选中的图标周围有一个很薄的正方形。我希望Xamarin应用程序中有类似的设置来打开此行为。

所以这个薄方形可以是专注状态的设计背景。

我不知道是否有它的任何设置,但如果你想做到这一点在后面的代码来表示其控制目前集中,正如我开头所说,你可以使用活动的CurrentFocus。例如:

public override bool DispatchKeyEvent(KeyEvent e) { if (e.Action == KeyEventActions.Up) 
    { if (e.KeyCode == Keycode.DpadDown || e.KeyCode == Keycode.DpadUp 
      || e.KeyCode == Keycode.DpadLeft || e.KeyCode == Keycode.DpadRight) 
     { var view = this.CurrentFocus; 
      view.SetBackgroundDrawable(...); 
     } 
    } return base.DispatchKeyEvent(e); 
} 

忘了说,如果你想做到这一点在后面的代码,不要忘了更改背景回到它的老态,当一个新的控制重点。嗯,似乎州列表资源是这里的最佳选择。


版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:商户类目对应资质、费率、结算周期 | ·下一条:扫码领红包-支付宝-柏港科技

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有