Я использую эту библиотеку: com.github.sephiroth74: android-target-tooltip: 2.0.4 для отображения подсказок. Минимальный уровень API, поддерживаемый мной, составляет 19 (Android 4.4+), но эта библиотека падает на пользователях с Android 4.4.2 и 5.0 на мобильных устройствах ZenFone. С журналом сбоев:
Fatal Exception: java.lang.RuntimeException
Failed to resolve attribute at index 96
Fatal Exception: java.lang.RuntimeException
Failed to resolve attribute at index 96
android.content.res.TypedArray.getColor (TypedArray.java:401)
androidx.appcompat.widget.AppCompatTextView.<init> (AppCompatTextView.java:79)
it.sephiroth.android.library.xtooltip.Tooltip.preparePopup (Tooltip.kt:309)
it.sephiroth.android.library.xtooltip.Tooltip.show (Tooltip.kt:624)
com.companyName.view.activity.ShopTransactionBrowser.showGreenBar (ShopTransactionBrowser.java:1192)
com.companyName.view.activity.ShopTransactionBrowser.activateFrame (ShopTransactionBrowser.java:677)
com.companyName.view.activity.ShopTransactionBrowser.access$1100 (ShopTransactionBrowser.java:106)
com.companyName.view.activity.ShopTransactionBrowser$2.onPageFinished (ShopTransactionBrowser.java:610)
N6.b (PG:15)
ro.handleMessage (PG:43)
Ссылка для библиотеки: https://github.com/sephiroth74/android-target-tooltip
Вот как я это называю из кода, где происходит сбой:
Tooltip infoTooltip = new Tooltip.Builder(this)
.overlay(false)
.anchor(top_panel_container, 0, 0, false)
.text(getResources().getString(R.string.active_tooltip_title))
.maxWidth(tooltipWidth)
.arrow(true)
.closePolicy(ClosePolicy.Companion.getTOUCH_INSIDE_NO_CONSUME()) .floatingAnimation(Tooltip.Animation.Companion.getSLOW())
.showDuration(5000)
.styleId(R.style.ToolTipAltGreenStyle)
.create();
infoTooltip.show(top_panel_container, Tooltip.Gravity.BOTTOM, true);
Иэто мой файл style.xml:
<style name="ToolTipAltGreenStyle" parent="ToolTipLayoutDefaultStyle">
<item name="ttlm_padding">16dp</item>
<item name="ttlm_backgroundColor">@color/re_green</item>
<item name="ttlm_cornerRadius">6dp</item>
<item name="ttlm_arrowRatio">1.2</item>
<item name="ttlm_overlayStyle">@style/ToolTipOverlayAltStyle</item>
<item name="ttlm_animationStyle">@style/ToolTipAltAnimation</item>
<item name="ttlm_textStyle">@style/ToolTipAltTextStyle</item>
</style>
<style name="ToolTipAltRedStyle" parent="ToolTipLayoutDefaultStyle">
<item name="ttlm_padding">16dp</item>
<item name="ttlm_backgroundColor">@color/re_red</item>
<item name="ttlm_cornerRadius">6dp</item>
<item name="ttlm_arrowRatio">1.2</item>
<item name="ttlm_overlayStyle">@style/ToolTipOverlayAltStyle</item>
<item name="ttlm_animationStyle">@style/ToolTipAltAnimation</item>
<item name="ttlm_textStyle">@style/ToolTipAltTextStyle</item>
</style>
<style name="ToolTipAltTextStyle" parent="ToolTipTextStyle">
<item name="android:textColor">@android:color/white</item>
</style>
<style name="ToolTipOverlayAltStyle" parent="ToolTipOverlayDefaultStyle">
<item name="android:color">?attr/colorAccent</item>
<item name="android:alpha">0.3</item>
</style>
<style name="ToolTipAltAnimation">
<item name="android:windowEnterAnimation">@anim/custom_anim_enter</item>
<item name="android:windowExitAnimation">@anim/custom_anim_exit</item>
</style>