pizza row

This commit is contained in:
2017-09-23 00:20:36 +03:00
parent 446ae5c72a
commit d4f7ea2de0
14 changed files with 252 additions and 119 deletions

View File

@@ -1,11 +1,18 @@
package ch.pizzalink.android.adapter.recycler;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.Transformation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.ArrayList;
@@ -23,41 +30,49 @@ import ch.pizzalink.android.model.PizzaModel;
* Created by cimenmus on 20/09/2017.
*/
public class PizzaRecyclerAdapter extends RecyclerView.Adapter<PizzaRecyclerAdapter.ViewHolder> {
public class PizzaRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
private ArrayList<PizzaModel> pizzaList;
private final int HOLDER_PIZZA = 0;
private final int HOLDER_SPACE = 1;
private ArrayList<PizzaModel> pizzaList = new ArrayList<>();
private RecyclerItemClickListener recyclerItemClickListener;
public static class ViewHolder extends RecyclerView.ViewHolder{
public static class PizzaViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.pizzaNameTextView) TextView pizzaNameTextView;
@BindView(R.id.pizzaImageView) ImageView pizzaImageView;
@BindView(R.id.pizzaIngredientsTextView) TextView pizzaIngredientsTextView;
@BindView(R.id.pizzaBottomLayout) LinearLayout pizzaBottomLayout;
@BindView(R.id.expandBottomLayoutImageView) ImageView expandBottomLayoutImageView;
@BindView(R.id.collapseBottomLayoutImageView) ImageView collapseBottomLayoutImageView;
public ViewHolder(final View view, final RecyclerItemClickListener recyclerItemClickListener) {
public PizzaViewHolder(final View view, final RecyclerItemClickListener recyclerItemClickListener) {
super(view);
ButterKnife.bind(this, view);
/*
favoriteOfferImageView.setClickable(true);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
public void onClick(View view) {
if(recyclerItemClickListener != null)
recyclerItemClickListener.onItemClick(view, getAdapterPosition());
recyclerItemClickListener.onItemClick(pizzaBottomLayout, getAdapterPosition());
}
});
favoriteOfferImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(recyclerItemClickListener != null)
recyclerItemClickListener.onItemClick(favoriteOfferImageView, getAdapterPosition());
}
});
*/
}
}
public static class SpaceViewHolder extends RecyclerView.ViewHolder{
public SpaceViewHolder(final View view) {
super(view);
}
}
@Override
public int getItemViewType(int position) {
if(position == pizzaList.size())
return HOLDER_SPACE;
return HOLDER_PIZZA;
}
public PizzaRecyclerAdapter(ArrayList<PizzaModel> pizzaList, RecyclerItemClickListener recyclerItemClickListener){
@@ -66,22 +81,68 @@ public class PizzaRecyclerAdapter extends RecyclerView.Adapter<PizzaRecyclerAdap
}
@Override
public PizzaRecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View root = LayoutInflater.from(BaseActivity.currentActivity).inflate(R.layout.row_pizza_2, viewGroup, false);
return new PizzaRecyclerAdapter.ViewHolder(root, recyclerItemClickListener);
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
RecyclerView.ViewHolder viewHolder;
View view;
LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext());
switch (viewType){
case HOLDER_PIZZA:
view = inflater.inflate(R.layout.row_pizza_2, viewGroup, false);
viewHolder = new PizzaViewHolder(view, recyclerItemClickListener);
break;
case HOLDER_SPACE:
view = inflater.inflate(R.layout.row_space, viewGroup, false);
viewHolder = new SpaceViewHolder(view);
break;
default:
view = inflater.inflate(R.layout.row_pizza_2, viewGroup, false);
viewHolder = new PizzaViewHolder(view, recyclerItemClickListener);
break;
}
return viewHolder;
}
@Override
public void onBindViewHolder(PizzaRecyclerAdapter.ViewHolder holder, int position) {
holder.pizzaNameTextView.setText("Anatolia");
holder.pizzaIngredientsTextView.setText("Mozzarella, Artischocken, Pilze, Peperoni, Oliven, Oregano");
ImageLoadHelper.loadImage(holder.pizzaImageView, "http://www.pizzalink.ch/pizza/image/cache/catalog/pizza/2-220x220.png");
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
switch (holder.getItemViewType()){
case HOLDER_PIZZA :
PizzaViewHolder pizzaViewHolder = (PizzaViewHolder) holder;
pizzaViewHolder.pizzaNameTextView.setText("Anatolia");
pizzaViewHolder.pizzaIngredientsTextView.setText("Mozzarella, Artischocken, Pilze, Peperoni, Oliven, Oregano");
ImageLoadHelper.loadImage(pizzaViewHolder.pizzaImageView, "http://www.pizzalink.ch/pizza/image/cache/catalog/pizza/2-220x220.png");
if(pizzaList.get(position).isExpanded()){
pizzaViewHolder.expandBottomLayoutImageView.setVisibility(View.GONE);
pizzaViewHolder.collapseBottomLayoutImageView.setVisibility(View.VISIBLE);
pizzaViewHolder.pizzaBottomLayout.setVisibility(View.VISIBLE);
}
else{
pizzaViewHolder.expandBottomLayoutImageView.setVisibility(View.VISIBLE);
pizzaViewHolder.collapseBottomLayoutImageView.setVisibility(View.GONE);
pizzaViewHolder.pizzaBottomLayout.setVisibility(View.GONE);
}
break;
case HOLDER_SPACE :
SpaceViewHolder spaceViewHolder = (SpaceViewHolder) holder;
break;
}
}
@Override
public int getItemCount() {
//return pizzaList.size();
return 12;
return pizzaList.size() + 1 ;
}
}
}

View File

@@ -57,6 +57,7 @@ public class PizzaFragment extends OrderBaseFragment {
private void initViews(){
setPizzalinkToolbarFields(true, fragmentTitle);
initRecyclerView();
fillPizzaList();
}
private void initRecyclerView(){
@@ -69,7 +70,18 @@ public class PizzaFragment extends OrderBaseFragment {
pizzaRecyclerAdapter = new PizzaRecyclerAdapter(pizzaList, new RecyclerItemClickListener() {
@Override
public void onItemClick(View view, int position) {
switch (view.getId()){
default:
for(int i = 0; i < pizzaList.size(); i++){
if(i == position && !pizzaList.get(i).isExpanded())
pizzaList.get(i).setExpanded(true);
else
pizzaList.get(i).setExpanded(false);
}
pizzaRecyclerAdapter.notifyDataSetChanged();
pizzaRecyclerView.scrollToPosition(position);
break;
}
}
});
LinearLayoutManager layoutManager = new LinearLayoutManager(BaseActivity.currentActivity);
@@ -77,4 +89,11 @@ public class PizzaFragment extends OrderBaseFragment {
pizzaRecyclerView.setAdapter(pizzaRecyclerAdapter);
}
private void fillPizzaList(){
for(int i = 0; i < 12; i++){
pizzaList.add(new PizzaModel());
}
pizzaRecyclerAdapter.notifyDataSetChanged();
}
}

View File

@@ -13,6 +13,7 @@ public class PizzaModel {
private double price;
private boolean isInCart;
private ArrayList<SizeModel> pizzaSizeList;
private boolean isExpanded;
public String getId() {
return id;
@@ -77,4 +78,12 @@ public class PizzaModel {
public void setPizzaSizeList(ArrayList<SizeModel> pizzaSizeList) {
this.pizzaSizeList = pizzaSizeList;
}
public boolean isExpanded() {
return isExpanded;
}
public void setExpanded(boolean expanded) {
isExpanded = expanded;
}
}