Pengenalan Android Advanced Recycler View

Android Recycler View (Gambar Google Images)

Class RecyclerView mendukung tampilan kumpulan data. Ini menerapkan gaya pemrograman yang menghasilkan kinerja yang baik.

Ini juga dilengkapi dengan animasi default untuk menghapus dan menambahkan elemen. RecyclerView memungkinkan untuk menggunakan manajer tata letak yang berbeda untuk memposisikan item. Menggunakan ViewHolder untuk menyimpan referensi ke tampilan untuk satu entri dalam tampilan RecyclerView.

Adaptor mengelola model data dan menyesuaikannya dengan entri individual di widget. Ini memperluas kelas RecyclerView.Adapter dan ditugaskan ke tampilan recyclerview melalui metode RecyclerView.setAdapter().

Adaptor menyiapkan tata letak item dengan menggembungkan tata letak yang benar untuk elemen data individual. Pekerjaan ini dilakukan dengan metode onCreateViewHolder. Ini mengembalikan objek tipe ViewHolder per entri visual pada tampilan recyclerview.

Contoh Penerapan Recycler view

Contoh
// Sintaks untuk membuat gambar diatas, ketikan ini kedalam layout kalian (misal activity_main.xml)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:padding="6dip" >
 <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentBottom="true" android:layout_alignParentTop="true" android:layout_marginRight="6dip" android:contentDescription="TODO" android:src="@drawable/ic_launcher" />

 <TextView android:id="@+id/secondLine" android:layout_width="fill_parent" android:layout_height="26dip" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_toRightOf="@id/icon" android:ellipsize="marquee" android:singleLine="true" android:text="Description" android:textSize="12sp" /> 

<TextView android:id="@+id/firstLine" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_above="@id/secondLine" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_alignWithParentIfMissing="true" android:layout_toRightOf="@id/icon" android:gravity="center_vertical" android:text="Example application" android:textSize="16sp" />
 </RelativeLayout>

Latihan berikut menunjukkan bagaimana cara menggunakannya RecyclerView

Tingkat ketergantungan terhadap penggunaan recylerview Widget RecyclerView dikirim sebagai library dan dapat digunakan sebagai API 7 level atau lebih tinggi. Tambahkan ketergantungan ke versi terbaru perpustakaan ini ke file build Gradle Anda untuk menggunakannya.

dependencies {
    ...
    compile "com.android.support:recyclerview-v7:25.1.1"
}

1.Buat proyek dan tambahkan ketergantungan Gradle Tambahkan ketergantungan yang diperlukan ke file build Gradle Anda. Lihat ketergantungan Gradle untuk menggunakan tampilan recyclerview untuk rinciannya.

2. Membuat File Layout Buat atau perbarui file tata letak yang disebut activity_main.xml sehingga berisi .

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <android.support.v7.widget.RecyclerView
        android:id="@+id/my_recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="12dp"
        android:layout_marginRight="12dp"
        android:elevation="2dp"
        android:src="@drawable/ic_add_circle" />

</RelativeLayout>

Membuat Layout baru untuk digunakan di setiap item (rowlayout.xml) :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:padding="6dip" >
    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_alignParentBottom="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="6dip"
        android:contentDescription="TODO"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/secondLine"
        android:layout_width="fill_parent"
        android:layout_height="26dip"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@id/icon"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:text="Description"
        android:textSize="12sp" />

    <TextView
        android:id="@+id/firstLine"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/secondLine"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_alignWithParentIfMissing="true"
        android:layout_toRightOf="@id/icon"
        android:gravity="center_vertical"
        android:text="Example application"
        android:textSize="16sp" />
</RelativeLayout>

Membuat Class Adapter (MyAdapter.java).

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
        private ArrayList<String> mDataset;
        public class ViewHolder extends RecyclerView.ViewHolder {
                public TextView txtHeader;
                public TextView txtFooter;
                public ViewHolder(View v) {
                        super(v);
                        txtHeader = (TextView) v.findViewById(R.id.firstLine);
                        txtFooter = (TextView) v.findViewById(R.id.secondLine);               }        }
        public void add(int position, String item) {
                mDataset.add(position, item);
                notifyItemInserted(position);        }
        public void remove(String item) {
                int position = mDataset.indexOf(item);
                mDataset.remove(position);
                notifyItemRemoved(position);        }
         public MyAdapter(ArrayList<String> myDataset) {
                mDataset = myDataset;        }
  @Override
        public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,int                                                 	viewType) {
                View v = 	LayoutInflater.from(parent.getContext()).inflate(R.layout.rowlayout, 	parent, false);
                ViewHolder vh = new ViewHolder(v);
                return vh;        }
        @Override
        public void onBindViewHolder(ViewHolder holder, int position) {
                holder.txtHeader.setText(mDataset.get(position));
                holder.txtHeader.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {
                                remove(name);                        }            });
                holder.txtFooter.setText("Footer: " + mDataset.get(position))   }
@Override
        public int getItemCount() {
                return mDataset.size();
        }
}

Sekarang konfigurasikan recyclerview dalam Activity Anda (MainActivitiy.java).

public class MyActivity extends Activity {
    private RecyclerView mRecyclerView;
    private RecyclerView.Adapter mAdapter;
    private RecyclerView.LayoutManager mLayoutManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);

        mRecyclerView.setHasFixedSize(true);
        mLayoutManager = new LinearLayoutManager(this);
        mRecyclerView.setLayoutManager(mLayoutManager);

        mAdapter = new MyAdapter(myDataset);
        mRecyclerView.setAdapter(mAdapter);
    }
    ...
}

Sumber : Master Android (App)

Bagikan Melalui :

Post Author: CoedotzMagic

Seorang Berandalan Jenius yang bercita-cita menjadi penulis dan membuat terkesan cewek yang ia sukai.