2015-07-13 49 views
2

我使用ShowcaseView作爲目標在操作欄中的項目 但我不能鎖定ListView的元素!我試過了,它不起作用:如何在Android中使用ShowcaseView來定位ListView中的元素?

ShowcaseView sv = new ShowcaseView.Builder(this,true) 
         .setTarget(new ViewTarget(lv.getChildAt(1).findViewById(R.id.heart))) 
         // Here is where you supply the id of the action bar item you 
         // want to display 
         .setContentTitle("Heart") 
         .setContentText("Check the venues of your city") 
         .hideOnTouchOutside() 
         .build(); 

回答

1

很簡單。取ViewHolder中的元素,然後在bindView中放置用於顯示ShowCaseView的代碼。

不要忘記爲列表中的每個元素添加不同的ID。

所以你可以嘗試這樣的事情。

public class ViewHolder extends RecyclerView.ViewHolder { 

    private TextView button; 

    public ViewHolder(final View itemView) { 
    super(itemView); 
    button = (Button) itemView.findViewById(R.id.list_button); 

    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
     new MaterialShowcaseView.Builder(getActivity()) 
      .setTarget(verifyButton) 
      .setDismissText("GOT IT") 
      .setContentText("Your text goes here") 
      .setDelay(100) // optional but starting animations immediately in onCreate can make them choppy 
      .singleUse(id + " define an unique id for each item of the list") // provide a unique ID used to ensure it is only shown once 
      .show(); 
     } 
     }); 
    } 
    } 
} 

要獲得更多的信息,你可以check the library here

相關問題