通常的想法是:我有一个ScrollView
,其中有一个TextView
。 TextView
的某些部分是ClickableSpan
。当我单击ClickableSpan
之一时,我想在其上附加自定义工具提示。工具提示只能附加到View
。通过使用onClick
的{{1}}方法,其中的ClickableSpan
参数是父View
的参数,因此工具提示将始终附加到整个{{1} },但我希望将其附加到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)
上。