ShowcaseView(库)如何与GridView或ListView一起使用?
答案 0 :(得分:8)
对于那些有同样问题的人,我找到了一个很好的解决方案:
showcaseView = new ShowcaseView.Builder(getActivity(),true)
.setTarget(new ViewTarget(myListView.getChildAt(0).findViewById(R.id.itemIcon)))
.setStyle(R.style.CustomShowcaseTheme)
.setContentTitle("My test")
.setContentText("I love fries")
.setOnClickListener(new View.OnClickListener() {
...
}
好吧,您可以使用getChildAt(0)
获得所需的元素,然后只需findViewById
就可以了!
不需要创建任何其他观点!
答案 1 :(得分:2)
您可以尝试这样的事情:
在您的布局中,您可以在要显示的元素上有一个隐形按钮
<Button
android:id="@+id/showcase_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="140dp"
android:visibility="invisible"
android:text="Showcase" />
然后只需将该元素设置为目标
ViewTarget target = new ViewTarget(R.id.showcase_button, this);
new ShowcaseView.Builder(this)
.setTarget(target)
.setContentTitle("Choose smthn")
.setContentText("Some other information can be here.")
.hideOnTouchOutside()
.build();
答案 2 :(得分:0)
并且在片段中使用时,尤其是对于ListViews,应该这样使用:
fragmentView.post(new Runnable() {
@Override
public void run() {
final View listViewIdentity = infoListView.getChildAt(0);
new GuideView.Builder(getContext())
.setTitle("Deneme")
.setContentText("Deneme 1 2")
.setTargetView(listViewIdentity)
.setDismissType(GuideView.DismissType.outside)
.build()
.show();
}
});
因为您必须在onCreate方法中编写此块,并且在创建fragmentView时,ListView可能尚未准备好。
此代码块获取一个特定的单元格,并在其上使用展示柜视图。
此处的GuideView来自您可以在android-arsenal库中找到的库。
我希望这对我有所帮助。