Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TagView is not initiated or not display and also get overlap #11

Open
ShreyashPromact opened this issue Apr 5, 2016 · 18 comments
Open
Labels

Comments

@ShreyashPromact
Copy link

I have added tagview to my recyclerview's footer. I am facing issue like, when I scroll to down. initially tags that is in the footer is not going to display. But then I scroll a little bit to up direction and again come back to footer, it show me the tags. I dont know where is the issue.

I am adding tags as mention below:

for(int i = 0; i < mStory.getTags().size(); i++) {
                footerHolder.tagView.removeAllTags();
                Tag tag = new Tag(mStory.getTags().get(i).getName());
                tag.layoutBorderSize = 2f;
                tag.layoutBorderColor = ContextCompat.getColor(mContext
                        , R.color.my_theme_primary);
                tag.tagTextColor = ContextCompat.getColor(mContext
                        , R.color.my_theme_primary_text);
                tag.background = ContextCompat.getDrawable(mContext,R.drawable.bg_tag);
                footerHolder.tagView.addTag(tag);
            }

            footerHolder.tagView.setOnTagClickListener(new OnTagClickListener() {
                @Override
                public void onTagClick(Tag tag, int position) {
                    Toast.makeText(mContext, "position=" + position,
                            Toast.LENGTH_SHORT).show();
                }
            });

My code is proper in footer because other view that I have mention in footer looks fine with even initial scrolling. But Tags is not getting displayed when scroll initial.

Please share solution to that with me.

@kaedea kaedea added the bug label Apr 5, 2016
@ShreyashPromact
Copy link
Author

I am in high priority to complete the work. Is there any solution to this issue?

I have try adding TagView infooter for ListView in your given example. But when I have added same in recyclerview for footer, it is not working as expected. It is appearing after i scroll second time to bottom.

Sincerely,
Shreyash

@ShreyashPromact
Copy link
Author

Also there is one more issue I have observer here, the tags are getting updated on each other.
E.g: If I have "Car" and "Racing" as tags, it is getting updated on same place and hiding the tags that are previous then that. Means "Car" is hiding here and "Racing" is display above "Car".

Please resolved this issue and let me know, or I need to move on other library as this is worth to use as per my requirements.

Thanks.

Sincerely,
Shreyash

@ShreyashPromact ShreyashPromact changed the title TagView is not initiated or not display TagView is not initiated or not display and also get overlap Apr 6, 2016
@ShreyashPromact
Copy link
Author

@kaedea Can you please guide me for the cause of this issue and resolved it. I have to deliver the app to my client. But just because of this I can't.

Sincerely,
Shreyash

@kaedea
Copy link
Owner

kaedea commented Apr 8, 2016

Hey, SP.
This bug is because the value of mWidth in the TagView.java is not set correctly in the first time you scroll to bottom. You can just set a coustom value (e.x. screen width) to mWidth in the init of TagView.

@ShreyashPromact
Copy link
Author

@kaedea

OK. Thanks for reply. I am updating it and will let you know about it.

@ShreyashPromact
Copy link
Author

@kaedea
That is not the cause of issue. I have print the log which it is assigning value to mWidth, It is always loading right width. But the problem is somewhere else. I guess you need to handled it proper. Because you have used RelativeLayout, it is also causing overlapping issue while adding Tags directly in for loop as mention in raised question.

Please review that in depth.

Thanks.
Sincerely,
Shreyash

@kaedea
Copy link
Owner

kaedea commented Apr 8, 2016

Well, set TagView#drawTags to public and call this method after footerHolder.tagView.addTag(tag);

@ShreyashPromact
Copy link
Author

@kaedea
I have checked that method before and also make the changes as you have said. But not working.

I have observed that somehow, it is not getting initiated while scrolling down first time. That's why it get return. While on second time scrolling it get get initiated and displaying me the tags.

I have updated this code in drawTags()

if (!mInitialized) { Log.d("TagView", "IS NOT INITIALIZED"); return; }

So, first time I got log printed and not second time. Hope you got my point.

Looking for solution to that.

Sincerely,
Shreyash

@kaedea
Copy link
Owner

kaedea commented Apr 8, 2016

Please try debug in the Constructor of TagView to see where the logic is wrong.
Make sure the method drawTags could be called correctly.

@ShreyashPromact
Copy link
Author

@kaedea
If I have time to check that I will not inform you to do that. I will simply pull the request an update your code.

Please update me for the feasible solution to that.

Sincerely,
Shreyash

@kaedea
Copy link
Owner

kaedea commented Apr 8, 2016

Well, now the problem is that the code works just porfect for me.
I don't know how you use the lib so that I have no way to debug.

@kaedea
Copy link
Owner

kaedea commented Apr 8, 2016

Please see this pr. It may help. #7

@ShreyashPromact
Copy link
Author

@KANGOD @kaedea
I don't know you guys using it in recyclerview or not. If not then please try with recyclerview. It is not working at all.

I have already try your demo with the listview and it is working fine there. But not with recyclerview. Please try that with recycler view as well.

Sincerely,
Shreyash

@Ram8948
Copy link

Ram8948 commented Apr 9, 2016

tagview inside (layout within layout) nested layout not display but work perfactly when i use tagview inside layout. any solution please?

@ShreyashPromact
Copy link
Author

@kaedea

Have you got any solution to issue, i have mention?

@ShreyashPromact
Copy link
Author

@kaedea

I have seen that the issue is with below method in TagView class.

/**
     * initalize instance
     *
     * @param ctx
     * @param attrs
     * @param defStyle
     */
    private void initialize(Context ctx, AttributeSet attrs, int defStyle) {
        mInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mViewTreeObserber = getViewTreeObserver();
        mViewTreeObserber.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                if (!mInitialized) {
                    mInitialized = true;
                    drawTags();
                }
            }
        });

        // get AttributeSet
        TypedArray typeArray = ctx.obtainStyledAttributes(attrs, R.styleable.TagView, defStyle, defStyle);
        this.lineMargin = (int) typeArray.getDimension(R.styleable.TagView_lineMargin, Utils.dpToPx(this.getContext(), Constants.DEFAULT_LINE_MARGIN));
        this.tagMargin = (int) typeArray.getDimension(R.styleable.TagView_tagMargin, Utils.dpToPx(this.getContext(), Constants.DEFAULT_TAG_MARGIN));
        this.textPaddingLeft = (int) typeArray.getDimension(R.styleable.TagView_textPaddingLeft, Utils.dpToPx(this.getContext(), Constants.DEFAULT_TAG_TEXT_PADDING_LEFT));
        this.textPaddingRight = (int) typeArray.getDimension(R.styleable.TagView_textPaddingRight, Utils.dpToPx(this.getContext(), Constants.DEFAULT_TAG_TEXT_PADDING_RIGHT));
        this.textPaddingTop = (int) typeArray.getDimension(R.styleable.TagView_textPaddingTop, Utils.dpToPx(this.getContext(), Constants.DEFAULT_TAG_TEXT_PADDING_TOP));
        this.texPaddingBottom = (int) typeArray.getDimension(R.styleable.TagView_textPaddingBottom, Utils.dpToPx(this.getContext(), Constants.DEFAULT_TAG_TEXT_PADDING_BOTTOM));
        typeArray.recycle();
    }

Please check that for footer view of the recycler view and update it. I don't know what changes makes it to work proper.

Sincerely,
Shreyash

@ShreyashPromact
Copy link
Author

@kaedea

Is there any solution to that or should I have to move on other library? I suppose that will gone resolved with in 1 week. But its taking more time.

Sincerely,
Shreyash

@kaedea
Copy link
Owner

kaedea commented May 11, 2016

@ShreyashPromact sorry to leave this bug so long

I have tested it and it does exist. I have try to refractor this project. There is a substitute repo you may check it out.
https://github.com/kingideayou/TagCloudView

Chinese coder is occupied with jobs all day and sorry for this bug again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants