Как прикрепить пользовательский вид к интерактивному промежутку внутри TextView
Общая идея такова: у меня есть ScrollView
внутри это TextView
, Некоторые части TextView
являются ClickableSpan
s. Когда я нажимаю на один из ClickableSpan
s Я хочу прикрепить к нему пользовательскую подсказку. Подсказка может быть прикреплена только к View
, Используя onClick
метод ClickableSpan
View
параметр внутри него является родителем TextView
, так что подсказка всегда будет прикреплена ко всему TextView
, но я хочу, чтобы он был прикреплен к ClickableSpan
, Я понятия не имею, как этого добиться и как его погуглить.
Это создание кликабельных участков:
while (matcher.find()) {
int start = matcher.start();
int end = matcher.end();
final String chordName = matcher.group(1);
ClickableSpan clickSpan = new ClickableSpan() {
@Override
public void onClick(View view) {
// Here the "view" is of the parent TextView,
// but I want it to be a custom View of the unique
// ClickableSpan so I can pass it to the custom tooltip
}
};
spannable.setSpan(clickSpan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
TextView tabsView = findViewById(R.id.tabs);
tabsView.setText(spannable, TextView.BufferType.SPANNABLE);
tabsView.setMovementMethod(LinkMovementMethod.getInstance());
Вот как я показываю подсказку:
new Tooltip.Builder(context)
.anchor(view)
.autoAdjust(true)
.content(content)
.withTip(new Tooltip.Tip(16, 16, R.color.colorPrimary, 4))
.into((ViewGroup)((Activity)context).findViewById(R.id.chordsViewRoot))
.show();
.anchor(view)
часть, где я должен передать View
к которой будет прикреплена подсказка, и я хочу, чтобы она была прикреплена к ClickableSpan
Я нажал на.
Что в настоящее время происходит
Это библиотека, которую я использую для пользовательских подсказок