【问题标题】:First launch Tutorial in android - Show case view with fragmentandroid 中的首次启动教程 - 显示带有片段的案例视图
【发布时间】:2015-03-16 07:10:07
【问题描述】:

经过大量搜索,我找到了一个不错的repository on Github,它显示了我想要的东西,但问题是我在我的应用程序中使用了片段,我不知道如何使用库!在我的第一次尝试中,它给了我以下错误

 "java.lang.IllegalArgumentException: width and height must be > 0"

我找到了HERE 的解决方案,但现在它没有显示任何内容。(实际上演示屏幕没有显示)任何人都可以提供一段与片段一起正常工作的代码吗?或者帮我解决这个问题?

谢谢。

【问题讨论】:

    标签: android android-fragments showcaseview


    【解决方案1】:

    嘿,伙计,刚刚为你制作了一个样本here

    我实际上什么也没做,只是使用了 onCreateView 中的库 它奏效了

     @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container, false);
            new ShowcaseView.Builder(getActivity())
                    .setTarget(new ActionViewTarget(getActivity(), ActionViewTarget.Type.HOME))
                    .setContentTitle("ShowcaseView")
                    .setContentText("This is highlighting the Home button")
                    .hideOnTouchOutside()
                    .build();
            return rootView;
        }
    

    更新评论中的问题

    只需在 onActivityCreated 方法中添加您的代码,检查 sample created

    public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
    
            if (savedInstanceState==null){
                View view = getActivity().findViewById(R.id.hometxv);
                view.post(new Runnable() {
                    @Override
                    public void run() {
                        if (isAdded()) {
                            ShowcaseView sv;
                            ViewTarget target=new ViewTarget(R.id.hometxv,getActivity());
                            RelativeLayout.LayoutParams lps = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
                            lps.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
                            lps.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
                            int margin = ((Number) (getResources().getDisplayMetrics().density * 12)).intValue();
                            lps.setMargins(margin, margin, margin, margin);
    
                            sv = new ShowcaseView.Builder(getActivity(), true)
                                    .setTarget(target)
                                    .setContentTitle("hold up")
                                    .setContentText("smoke weed everyday")
                                    .setShowcaseEventListener(new OnShowcaseEventListener() {
                                        @Override
                                        public void onShowcaseViewHide(ShowcaseView showcaseView) {
    
                                        }
    
                                        @Override
                                        public void onShowcaseViewDidHide(ShowcaseView showcaseView) {
    
                                        }
    
                                        @Override
                                        public void onShowcaseViewShow(ShowcaseView showcaseView) {
    
                                        }
                                    })
                                    .build();
                            sv.setButtonPosition(lps);
                        }
                    }
                });
            }
        }
    

    享受:D

    【讨论】:

    • 谢谢,它工作正常,但现在的问题是我如何设置片段内部的元素(如按钮)?
    猜你喜欢
    • 2016-03-06
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 2014-07-09
    相关资源
    最近更新 更多