2017-07-19 106 views
1

我'與RecyclerView但工作時在recyclerview只有第一項在列表中查看的項目顯示 這裏的RecyclerView適配器RecyclerView顯示一個項目只

package com.example.abdelmagied.myapplication; 

import android.content.Context; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 

import org.w3c.dom.Text; 

import java.util.ArrayList; 

/** 
* Created by AbdELMagied on 7/19/2017. 
*/ 
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.MyViewHolder>{ 
    private ArrayList<items> myitems; 
    public LayoutInflater inflater; 
    public RecyclerAdapter(Context context, ArrayList<items> myitems) { 
     this.myitems = myitems; 
     this.inflater = LayoutInflater.from(context); 
    } 

    @Override 
    public RecyclerAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View v = inflater.inflate(R.layout.recyclerviewrow , parent , false); 
     return new MyViewHolder(v); 
    } 

    @Override 
    public void onBindViewHolder(RecyclerAdapter.MyViewHolder holder, int position) { 
      holder.name.setText(myitems.get(position).name); 
     holder.price.setText(myitems.get(position).price); 
    } 

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

    public static class MyViewHolder extends RecyclerView.ViewHolder{ 
     TextView name; 
     TextView price; 
     public MyViewHolder(View itemView) { 
      super(itemView); 
      name = (TextView) itemView.findViewById(R.id.recyclerviewname); 
      price = (TextView)itemView.findViewById(R.id.recyclerviewprice); 
     } 
    } 
} 

這裏的佈局其中一個名爲recyclerviewrow.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
     android:text="TextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/recyclerviewname" /> 

    <TextView 
     android:text="TextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/recyclerviewprice" /> 
</LinearLayout> 

這裏的的Main3Activity.xml

package com.example.abdelmagied.myapplication; 

    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.support.v7.widget.LinearLayoutManager; 
    import android.support.v7.widget.RecyclerView; 
    import android.widget.Toast; 

    import java.util.ArrayList; 

    public class Main3Activity extends AppCompatActivity { 
     public RecyclerView mRecyclerView; 
     public RecyclerView.LayoutManager mymanager; 
     public RecyclerView.Adapter recyclerViewAdapter; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main3); 
      Bundle bundle = getIntent().getExtras(); 
      ArrayList<items> myitems = bundle.getParcelableArrayList("myarray"); 
      ArrayList<items> go = new ArrayList<items>(); 
      go.add(new items("mobile" , " blablabl" , "655")); 
      go.add(new items("labtop" , " blablabl" , "655")); 
      go.add(new items("sony" , "blablbl" , "655")); 
      go.add(new items("mobile" , " blablabla" , "655")); 
      go.add(new items("mobile" , "blablabla" , "655")); 
      mRecyclerView = (RecyclerView) findViewById(R.id.RecyclerId); 
      mymanager = new LinearLayoutManager(this); 
      mRecyclerView.setHasFixedSize(true); 
      mRecyclerView.setLayoutManager(mymanager); 
      recyclerViewAdapter = new RecyclerAdapter(this , go); 
      mRecyclerView.setAdapter(recyclerViewAdapter); 

     } 
    } 

回答

1

問題是match_parent,改變你的父項android:layout_height爲wrap_content。

現在你也將有物品,但它會在底部,如果你滾動你可以看到第二個項目。

所以改變這樣的,

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
</LinearLayout> 
+0

它的工作謝謝 –

0

在你recyclerviewrow.xml,改變的LinearLayout高度WRAP_CONTENT。

0

您也可以給你的LinearLayout一個minWidth並設置寬度wrap_content

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="wrap_content" 
    android:layout_height="match_parent"> 

    <TextView 
     android:text="TextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/recyclerviewname" /> 

    <TextView 
     android:text="TextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/recyclerviewprice" /> 
</LinearLayout>