2013-10-05 35 views
14

有什麼辦法可以在Showcase視圖中設置標題和消息的位置嗎?我看到圖書館使用函數來找到最佳位置,但我想覆蓋它。Showcase查看文本重力

+1

請詳細說明你想說什麼,展示你的代碼,然後解釋你所得到的問題。 –

+0

已更新操作。仍然沒有找到辦法做到這一點。 – arayray

+0

在Showcase View github上提交問題。 https://github.com/Espiandev/ShowcaseView/issues/113 – arayray

回答

8

我只是深入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; 
    } 

ShowcaseView類添加這些字段

之後,將此方法添加到TextDrawer類中:

public void setTestPostionManually(int xPosition, int yPosition) { 
    mBestTextPosition[0] = xPosition; 
    mBestTextPosition[1] = yPosition; 
} 

,並在ShowcaseView末變化onPreDraw方法是這樣的:

@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(); 

享受!

+0

這是哪一個版本?任何想法如何使其在遺產工作? –

+1

修改版本爲5.0.0 – Sadegh

+0

你知道有什麼方法在5.0.0中添加手動畫嗎? –