Skip to content

Instantly share code, notes, and snippets.

@malikkurosaki
Created October 21, 2019 08:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save malikkurosaki/c89531b2bbec850e59ed86dde05e584d to your computer and use it in GitHub Desktop.
Save malikkurosaki/c89531b2bbec850e59ed86dde05e584d to your computer and use it in GitHub Desktop.
recyclerview memanjang

Recyclerview Memanjang

buat adapternya

package dev.malikkurosaki.gombalinkita.Adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;

import java.util.List;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import dev.malikkurosaki.gombalinkita.Pojo.PojoUtama;
import dev.malikkurosaki.gombalinkita.R;

public class AdapterUtama extends RecyclerView.Adapter<AdapterUtama.VHolder> {

    private Context context;
    private List<PojoUtama> list;
    private LayoutInflater inflater;

    public AdapterUtama(Context context, List<PojoUtama> list) {
        this.context = context;
        this.list = list;
        this.inflater = LayoutInflater.from(context);
    }

    @NonNull
    @Override
    public VHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new VHolder(inflater.inflate(R.layout.adapter_utama, parent, false));
    }

    @Override
    public void onBindViewHolder(@NonNull VHolder holder, int position) {
        PojoUtama utama = list.get(position);
        holder.bind(utama);

        holder.tombolPerpanjang.setOnClickListener(v->{
            boolean diperpanjang = utama.isMemanjang();
            utama.setMemanjang(!diperpanjang);
            notifyItemChanged(position);
        });
    }

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

    public class VHolder extends RecyclerView.ViewHolder implements View.OnClickListener {


        @BindView(R.id.wadahJudul)
        TextView wadahJudul;
        @BindView(R.id.tombolPerpanjang)
        ImageButton tombolPerpanjang;
        @BindView(R.id.wadahIsi)
        TextView wadahIsi;
        @BindView(R.id.tombolPlay)
        ImageButton tombolPlay;
        @BindView(R.id.containerPerpanjangan)
        LinearLayout containerPerpanjangan;

        public VHolder(@NonNull View itemView) {
            super(itemView);
            ButterKnife.bind(this, itemView);
            //R.layout.adapter_utama
        }

        @Override
        public void onClick(View view) {

        }

        private void bind(PojoUtama utama) {
            boolean diperpanjang = utama.isMemanjang();

            containerPerpanjangan.setVisibility(diperpanjang?View.VISIBLE:View.GONE);
            wadahJudul.setText(utama.getJudul());
            wadahIsi.setText(utama.getIsi());

        }
    }
}

buat xmlnya

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardUseCompatPadding="true">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center_vertical">
                <TextView
                    android:id="@+id/wadahJudul"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:text="loading"
                    android:textColor="@color/colorHitam"
                    android:textStyle="bold"
                    android:paddingEnd="8dp"
                    android:paddingStart="8dp"
                    android:textSize="18sp"
                    android:singleLine="true"/>
                <ImageButton
                    android:id="@+id/tombolPerpanjang"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:backgroundTint="@color/colorTransparantn"
                    android:padding="8dp"
                    android:src="@drawable/ic_expand_more_black_24dp"/>
            </LinearLayout>
            <LinearLayout
                android:id="@+id/containerPerpanjangan"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:padding="8dp">
                <TextView
                    android:id="@+id/wadahIsi"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="loading"
                    android:textStyle="bold"
                    android:padding="16dp"
                    android:textSize="24sp"
                    android:textColor="@color/color6"/>
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="end">
                    <ImageButton
                        android:id="@+id/tombolPlay"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:backgroundTint="@color/colorTransparantn"
                        android:src="@drawable/ic_volume_up_black_24dp"/>
                </LinearLayout>
            </LinearLayout>

        </LinearLayout>
    </androidx.cardview.widget.CardView>
</LinearLayout>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment