2017-08-09 33 views
0

I have been using RecycleView with an horizontalScrollView to create this(don't mind the blue ball)RecycleView不同寬度的大小會發生什麼每​​個項目

取決於標籤的文字大小所有其他的標籤後,該來的就它們之間有巨大的差距,下面我留下的圖像顯示你發生了什麼事。

third tag

在這裏,我從回收視圖中的XML文件。

<HorizontalScrollView 
    android:id="@+id/searchNeighborhoodsHorizontalScroll" 
    android:layout_width="wrap_content" 
    android:layout_height="50dp" 
    android:layout_below="@id/searchNeighborhoodsRelative" 
    android:layout_marginTop="10dp" 
    android:visibility="visible"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/searchNeighborhoodsTagView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scrollbars="vertical" 
     android:visibility="visible" /> 

</HorizontalScrollView> 

下面是從回收項目

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="35dp" 
android:layout_marginLeft="5dp" 
android:background="@drawable/tag_background"> 


<TextView 
    android:id="@+id/tagText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true" 
    android:layout_marginLeft="20dp" 
    android:text="Text test" 
    android:textColor="#FFFFFF" /> 

<ImageButton 
    android:id="@+id/tagDeleteButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true" 
    android:layout_marginLeft="15dp" 
    android:layout_marginRight="20dp" 
    android:layout_toRightOf="@id/tagText" 
    android:background="@android:color/transparent" 
    android:src="@drawable/ic_tag_close" /> 

設置適配器

GridLayoutManager manager = new GridLayoutManager(getActivity(), tagList.size(), GridLayoutManager.VERTICAL, false); 
    RecyclerView tagView = (RecyclerView) v.findViewById(R.id.searchNeighborhoodsTagView); 
    tagView.setLayoutManager(manager); 
    tagView.setAdapter(adapter); 

和轉接

public TagsAdapter(Context context, ArrayList<String> items) { 
    this.context = context; 
    this.items = items; 

    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 

@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View view = inflater.inflate(R.layout.tag_item, parent, false); 

    return new ViewHolder(view); 
} 

@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 
    holder.setupCard(items, position, context); 
} 

@Override 
public int getItemCount() { 
    return items.size(); 
} 


@Override 
public long getItemId(int position) { 
    return 0; 
} 


public static class ViewHolder extends RecyclerView.ViewHolder { 

    private final TextView tagText; 
    private final ImageButton tagDeleteButton; 

    public ViewHolder(View itemView) { 
     super(itemView); 

     tagText = (TextView) itemView.findViewById(R.id.tagText); 
     tagDeleteButton = (ImageButton) itemView.findViewById(R.id.tagDeleteButton); 

     setFont(); 
    } 

    private void setFont() { 
     tagText.setTypeface(LarSingleton.exoMedium); 
    } 

    public void setupCard(ArrayList<String> items, int position, Context context) { 
     tagText.setText(items.get(position).toString()); 
    } 
} 
的XML

你們有什麼想法解決這個問題嗎?或者爲什麼會發生?

回答

0
RecyclerView.LayoutManager layoutManager = new 
      GridLayoutManager(getApplicationContext(), 2,GridLayoutManager.HORIZONTAL, false); 

建議你可以實現它,而無需使用水平滾動視圖recyclerview有自己的滾動

+0

我試圖消除所有的利潤,但同樣的情況,我總是有之間的間隙元素由於元素的文本大小。我不能刪除水平滾動,因爲如果我做..由於某種原因一切崩潰 –

+0

試過這個GridLayoutManager.HORIZONTAL? –

+0

哥們你是天才我愛你= ** –

相關問題