2015-11-13 7 views
5

私は、このレイアウトを2つのアプリケーション、1つはRecyclerView、もう1つはルートのアクティビティレイアウトにしています。RecyclerViewは細胞を膨らませる奇妙な振る舞い

ここレイアウト:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:clickable="true" 
     android:orientation="vertical" 
     android:layout_marginTop="4dp" 
     android:layout_marginBottom="4dp" 
     android:layout_marginLeft="4dp" 
     android:layout_marginRight="4dp" 
     android:background="#CFCFCF" 
     android:minHeight="250dp"> 


     <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:background="@android:color/holo_red_dark" 
       > 


       <FrameLayout 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         android:background="@android:color/holo_blue_bright" 
         android:layout_above="@+id/commerceTextView" 
         > 

         <ImageView 
           android:src="@drawable/imagen" 
           android:id="@+id/commerceImageView" 
           android:layout_width="match_parent" 
           android:layout_height="wrap_content" 
           android:layout_gravity="center"/> 
       </FrameLayout> 

       <TextView 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:id="@+id/commerceTextView" 
         android:gravity="center" 
         android:textStyle="bold" 
         android:textSize="24sp" 
         android:textColor="#F1F1F1" 
         android:background="@color/colorPrimary" 
         android:layout_alignParentBottom="true" 
         android:paddingTop="10dp" 
         android:text="Best food ever" 
         android:paddingBottom="10dp"/> 

     </RelativeLayout> 

</FrameLayout> 

ここアダプタ

ここ
public class CommercesAdapter extends RecyclerView.Adapter<CommercesAdapter.CommercesViewHolder> { 

    private final Context context; 
    private final ImageLoader loader; 
    private List<CommerceEntity> commercesList; 

    @Inject 
    public CommercesAdapter(Context context, ImageLoader loader) { 
     this.context = context; 
     this.loader = loader; 
    } 

    public void setData(List<CommerceEntity> commercesList) { 
     this.commercesList = commercesList; 
    } 

    @Override 
    public CommercesViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = LayoutInflater.from(context) 
            .inflate(R.layout.list_comerces_item, parent, false); 
     return new CommercesViewHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(CommercesViewHolder holder, int position) { 
     CommerceEntity commerce = commercesList.get(position); 
     String imageUri = commerce.getImageUri(); 
     String name = commerce.getName(); 

     // holder.commerceTypeName.setText(name); 
     //loader.bind(holder.commerceImage, imageUri); 

    } 

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

    public static class CommercesViewHolder extends RecyclerView.ViewHolder { 
     public ImageView commerceImage; 
     public TextView commerceTypeName; 
     public CommercesViewHolder(View itemView) { 
      super(itemView); 
      commerceImage = (ImageView) itemView.findViewById(R.id.commerceImageView); 
      commerceTypeName = (TextView) itemView.findViewById(R.id.commerceTextView); 
     } 
    } 

RecyclerView enter image description here

そして、ここでルートアクティビティのレイアウトで

enter image description here

これがなぜ起こるのか誰かが知っていますか?入れ子になったFrameLayoutにandroid:centerInParent "true"を追加するとイメージが表示されますが、なぜそれは理解できません。

+0

アダプタのコードを投稿してください。 – Nanoc

+0

@Nanoc完了。しかし、アダプターは何もしません。 – Borja

答えて

0

アダプタでは、コメントアウトした2行のコメントを外します。

// holder.commerceTypeName.setText(name);

//loader.bind(holder.commerceImage, imageUri); 

`

+0

それは同じです、私はそれがイメージがリソースからロードしていることを示すためにコメントし、常に同じです。 – Borja