如何使用ShowViewView与GridView或ListView

时间:2014-04-17 06:41:37

标签: android showcaseview

ShowcaseView(库)如何与GridView或ListView一起使用?

图书馆是https://github.com/amlcurran/ShowcaseView

3 个答案:

答案 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库中找到的库。

我希望这对我有所帮助。