Как прикрепить пользовательский вид к интерактивному промежутку внутри TextView

Общая идея такова: у меня есть ScrollViewвнутри это TextView, Некоторые части TextView являются ClickableSpans. Когда я нажимаю на один из ClickableSpans Я хочу прикрепить к нему пользовательскую подсказку. Подсказка может быть прикреплена только к 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 Я нажал на.

Что я хочу

Что в настоящее время происходит

Это библиотека, которую я использую для пользовательских подсказок

0 ответов

Другие вопросы по тегам