greenfrvr / hashtag-view

Android fully customizable widget for representing data like hashtags collection and similiar.
MIT License
337 stars 54 forks source link

Unable to display hashTags #30

Closed meet2011 closed 7 years ago

meet2011 commented 7 years ago

I'm trying to display hash tags but it shows empty.

 <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">

<include
    android:id="@+id/toolBar"
    layout="@layout/toolbar" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp"
    android:background="@color/repost_bg"
    android:orientation="vertical">

    <com.greenfrvr.hashtagview.HashtagView
        android:id="@+id/htvHashTag"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="10dp"
        app:rowMode="stretch"
        app:tagForeground="@color/white"
        app:selectionMode="true"
        app:tagPaddingBottom="10dp"
        app:tagPaddingTop="10dp"
        app:tagTextSize="14sp"
        app:tagTextColor="@color/black" />

</LinearLayout>
</LinearLayout>

List<String> tagList = new ArrayList<>();
tagList.add("#php")
tagList.add("#love");
tagList.add("#android");
tagList.add("#programming");

HashtagView  hashtagView = (HashtagView)findViewById(R.id.htvHashTag);
hashtagView.setData(tagList);
meet2011 commented 7 years ago

I see square view but no text is displayed

koffisani commented 6 years ago

@meet2011 have you solved your issue ? How have you done this ?

KUCUKKARASLAN commented 6 years ago

Hello. Will you try this?

List<String> DATA = new ArrayList<String>();
        DATA.add("php");
        DATA.add("love");
        DATA.add("android");
        DATA.add("programming");

hashtagView = (HashtagView)findViewById(R.id.hashtags);
        hashtagView.setData(DATA, HashTagsTransformers.HASH);
        hashtagView.addOnTagClickListener(new HashtagView.TagsClickListener() {
            @Override
            public void onItemClicked(Object item) {
                Toast.makeText(getApplicationContext(), item.toString(), Toast.LENGTH_SHORT).show();
            }
        });
koffisani commented 6 years ago

No, it isn't working neither. When diagnosing, I can remark that Log.d("hashtag", hashtagView.getData().size() + ""); displays 0. Is there any problem ?

koffisani commented 6 years ago

@meet2011 @KUCUKKARASLAN

KUCUKKARASLAN commented 6 years ago

Hi Koffi, Create HashTagsTransformers.class

public class HashTagsTransformers {
    public static final HashtagView.DataTransform<String> HASH = new HashtagView.DataTransform<String>() {
        @Override
        public CharSequence prepare(String item) {
            SpannableString spannableString = new SpannableString("#" + item);
            spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#00e6ff")), 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            return spannableString;
        }
    };
}
List<String> DATA = new ArrayList<String>();
        DATA.add("php");
        DATA.add("love");
        DATA.add("android");
        DATA.add("programming");

hashtagView = (HashtagView)findViewById(R.id.hashtags);
        hashtagView.setData(DATA, HashTagsTransformers.HASH); //data set !!!
        hashtagView.addOnTagClickListener(new HashtagView.TagsClickListener() {
            @Override
            public void onItemClicked(Object item) {
                Toast.makeText(getApplicationContext(), item.toString(), Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), String.valueOf(hashtagView.getData().size()), Toast.LENGTH_SHORT).show();
            }
        });
koffisani commented 6 years ago

No, @KUCUKKARASLAN. My issue is not solved by this. Do you ever wonder what hashtagView.getData().size() must return ?

greenfrvr commented 6 years ago

Hello guys, from the very first layout .xml I noticed that tagForeground was set with solid white color, but it is actually used to reflect user interaction. If you remove it or set with appropriate resource it should work fine.

You can clone my repo and build sample app, you may see that I use it on each example and I use <selector> with opaque colors there.

koffisani commented 6 years ago

Hi @greenfrvr, I have a question that's still unanswered. I'm getting 0 when I debug hashtagView.getData().size(). And nothing displays in my app. Is that normal ?