#c# #android #xamarin #xamarin.android
#c# #Android #xamarin #xamarin.android
Вопрос:
Мне нужно выяснить, на какой элемент был нажат, когда пользователь прикасается к содержимому Android.Webkit.WebView
, совершенно независимо от типа HTML-элемента.
До сих пор мой подход заключался в использовании события касания и выполнении теста попадания, подобного этому:
private void WebView_Touch(object sender, View.TouchEventArgs e)
{
var hitTest = webView.GetHitTestResult();
var type = hitTest.Type;
var element = hitTest.Extra;
// Determine what todo based on type and element
}
Однако, когда я нажимаю, например, на <button>
элемент, событие запускается, но проверка попадания не дает результатов, т. Е. тип и элемент пусты. Возможно, проверка попадания еще не была выполнена? Нужно ли мне вызывать GetHitRect
?
Комментарии:
1. GetHitTestResult работает только с определенными известными типами элементов, такими как anchor, img и т.д. См. : developer.android.com/reference/android/webkit/… Каковы конкретно ваши требования? это помогло бы предложить решение.
2. @Nandy: Спасибо, приятно знать. Я соответствующим образом уточнил вопрос. В моем тестовом сценарии я пробовал использовать
<button>
элемент. Я предполагаю, что это будут самые важные, но в идеале решение должно быть универсальным в этом отношении.
Ответ №1:
Мы можем обнаружить следующие HTML-элементы в соответствии с документом Android API.
int ANCHOR_TYPE HitTestResult for hitting a HTML::a tag
int EDIT_TEXT_TYPE HitTestResult for hitting an edit text area
int EMAIL_TYPE HitTestResult for hitting an email address
int GEO_TYPE HitTestResult for hitting a map address
int IMAGE_ANCHOR_TYPE HitTestResult for hitting a HTML::a tag which contains HTML::img
int IMAGE_TYPE HitTestResult for hitting an HTML::img tag
int PHONE_TYPE HitTestResult for hitting a phone number
int SRC_ANCHOR_TYPE HitTestResult for hitting a HTML::a tag with src=http
int SRC_IMAGE_ANCHOR_TYPE HitTestResult for hitting a HTML::a tag with src=http HTML::img
int UNKNOWN_TYPE Default HitTestResult, where the target is unknown
Комментарии:
1. Я понял это перечисление как нечто, дающее вам дополнительную подсказку, какой элемент был обработан, но ограничена ли функциональность hit test этими типами?