Есть ли способ установить положение заголовка и сообщения в представлении витрины? Я вижу, что библиотека использует функцию, чтобы найти лучшую позицию, но я хочу ее переопределить.Витрина Посмотреть текст gravity
ответ
Я только что выкопал исходный код ShowcaseView
, и, похоже, нет способа построить текстовую позицию. Поэтому я добавил свои собственные изменения в библиотеку. Вот те изменения, которые я сделал:
В классе ShowcaseView
добавлены следующие поля:
private boolean hasManualPostion = false;
private int xPosition, yPosition, width;
Тогда в Builder
класс, который является внутренним классом в ShowcaseView
классе, добавить эти методы:
public Builder hasManualPosition(boolean hasManualPosition) {
showcaseView.hasManualPostion = hasManualPosition;
return this;
}
public Builder xPostion(int xPostion) {
showcaseView.xPosition = xPostion;
return this;
}
public Builder yPostion(int yPostion) {
showcaseView.yPosition = yPostion;
return this;
}
После этого добавьте этот метод в класс TextDrawer
:
public void setTestPostionManually(int xPosition, int yPosition) {
mBestTextPosition[0] = xPosition;
mBestTextPosition[1] = yPosition;
}
и на изменение onPreDraw
метода конца в ShowcaseView
выглядеть следующим образом:
@Override
public boolean onPreDraw() {
boolean recalculatedCling = showcaseAreaCalculator.calculateShowcaseRect(showcaseX, showcaseY, showcaseDrawer);
boolean recalculateText = recalculatedCling || hasAlteredText;
if (recalculateText) {
textDrawer.calculateTextPosition(getMeasuredWidth(), getMeasuredHeight(), this, shouldCentreText);
if (hasManualPostion) {
textDrawer.setTestPostionManually(xPosition, yPosition);
}
}
hasAlteredText = false;
return true;
}
Теперь вы должны создать ShowcaseView
так:
sv = new ShowcaseView.Builder(this, true)
.setTarget(target)
.setContentTitle(R.string.showcase_main_title)
.setContentText(R.string.showcase_main_message)
.setStyle(R.style.CustomShowcaseTheme2)
.setShowcaseEventListener(this)
.hasManualPosition(true)
.xPostion(0)
.yPostion(240)
.build();
Наслаждайтесь!
какая версия? любая идея, как заставить ее работать в наследии? –
Модификация для версии 5.0.0 – Sadegh
Знаете ли вы, каким образом можно привести анимацию руки в 5.0.0? –
Просьба уточнить, что вы пытаетесь сказать, показать свой код, а затем объяснить проблему, которую вы получаете. –
обновленный op. Все еще не нашли способ сделать это. – arayray
Представленный выпуск на Showcase View github. https://github.com/Espiandev/ShowcaseView/issues/113 – arayray