hamidreza.kh

سوال درمورد پاپ آپ پیج وریسایکلر ویو

8 ارسال در این موضوع قرار دارد

سلام خسته نباشید 

میخوام ی ریسایکلر ویو بسازم که مثل این عکس آیکون هرکدومش متفاوتش باشه یعنی هر چندتاییش متفاوت باشن با هم چیکار کنم؟

erdu_diffrent_recycler_view.jpg

و دوم اینکه میخوام یه صفحه پاپ آپ بسازم مثل این عکس...برای این کار چیکار کنم؟!

 

http://uupload.ir/files/yup_popup_page.jpg

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در ۱ ساعت قبل، hamidreza.kh گفته است :

سلام خسته نباشید 

میخوام ی ریسایکلر ویو بسازم که مثل این عکس آیکون هرکدومش متفاوتش باشه یعنی هر چندتاییش متفاوت باشن با هم چیکار کنم؟

erdu_diffrent_recycler_view.jpg

و دوم اینکه میخوام یه صفحه پاپ آپ بسازم مثل این عکس...برای این کار چیکار کنم؟!

 

http://uupload.ir/files/yup_popup_page.jpg

برای اینکه بخوای همچنین چیزی بسازی فقط یک دیتابیس بساز که یک ستون فیلد تصویر داشته باشه و هر کدوم یک تصویر خاص داشته باشه و مشکلت حل میشه

 

 

از کلاس PopupWindow برای ساخت پاپ آپ استفاده کن مانند کد زیر



    private void initiateTranslationPopupWindow(View v) {
        try {
            //We need to get the instance of the LayoutInflater, use the context of this activity
            LayoutInflater inflater = (LayoutInflater) getActivity()
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            //Inflate the view from a predefined XML layout
            View layout = inflater.inflate(R.layout.fragment_translation,
                    (ViewGroup) v.findViewById(R.id.popup_element));
            // create a MATCH_PARENT width and MATCH_PARENT height PopupWindow
            pw = new PopupWindow(layout, LinearLayout.LayoutParams.MATCH_PARENT,
                    LinearLayout.LayoutParams.MATCH_PARENT, true);
            txt_cancel = (TextView) layout.findViewById(R.id.txt_cancel);
        
            // display the popup in the center
            pw.showAtLocation(v, Gravity.CENTER, 0, 0);




        } catch (Exception e) {
            e.printStackTrace();
        }
    }



 

 

 

 

 

 

 

 

1 کاربر پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 17 دقیقه قبل، Farzad Sarseifi گفته است :

برای اینکه بخوای همچنین چیزی بسازی فقط یک دیتابیس بساز که یک ستون فیلد تصویر داشته باشه و هر کدوم یک تصویر خاص داشته باشه و مشکلت حل میشه

 

 

از کلاس PopupWindow برای ساخت پاپ آپ استفاده کن مانند کد زیر




    private void initiateTranslationPopupWindow(View v) {
        try {
            //We need to get the instance of the LayoutInflater, use the context of this activity
            LayoutInflater inflater = (LayoutInflater) getActivity()
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            //Inflate the view from a predefined XML layout
            View layout = inflater.inflate(R.layout.fragment_translation,
                    (ViewGroup) v.findViewById(R.id.popup_element));
            // create a MATCH_PARENT width and MATCH_PARENT height PopupWindow
            pw = new PopupWindow(layout, LinearLayout.LayoutParams.MATCH_PARENT,
                    LinearLayout.LayoutParams.MATCH_PARENT, true);
            txt_cancel = (TextView) layout.findViewById(R.id.txt_cancel);
        
            // display the popup in the center
            pw.showAtLocation(v, Gravity.CENTER, 0, 0);




        } catch (Exception e) {
            e.printStackTrace();
        }
    }



 

 

 

 

 

 

 

 

خیلی ممنون

اگه برای مورد اول برای هرکدوم یه دونه ویو هولدر بسازم چی؟ البته راهی ک شما کفتید فک کنم راحت تر و منطقی تر باشه؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 1 ساعت قبل، hamidreza.kh گفته است :

خیلی ممنون

اگه برای مورد اول برای هرکدوم یه دونه ویو هولدر بسازم چی؟ البته راهی ک شما کفتید فک کنم راحت تر و منطقی تر باشه؟

 

چرا میخواهید برای هر آیتم یک holder جدا تعریف کنید؟؟ وظایف هر ایتم چی هستش؟

 

1 کاربر پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 9 دقیقه قبل، Farzad Sarseifi گفته است :

 

چرا میخواهید برای هر آیتم یک holder جدا تعریف کنید؟؟ وظایف هر ایتم چی هستش؟

 

هیچ وظایف خاصی ندارن همشون یه کار رو انجام میدن اونم نشون دادن یه عکس ک کلیک روش بشه میره به اکتیویتی بعدی فقط میخوام این تصویرا فرق کنه

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 9 دقیقه قبل، hamidreza.kh گفته است :

هیچ وظایف خاصی ندارن همشون یه کار رو انجام میدن اونم نشون دادن یه عکس ک کلیک روش بشه میره به اکتیویتی بعدی فقط میخوام این تصویرا فرق کنه

 

 

پس همینکار رو انجام بدید یک  RecyclerView و اداپترش رو بنویسید

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

 

آداپتر RecyclerView

public class TestAdapter extends RecyclerView.Adapter<JuzeAdapter.ViewHolder> {


    List<Model> modelList = new ArrayList<>();

    public JuzeAdapter(Context context, List<Model> data) {
        modelList = data;
    }


    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.test_row, null);

        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

		Model model=modelList.get(position);

        holder.txt_title.setText(model.getTitle()+"");
        holder.txt_id.setText(model.getId()+"");

    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {

        TextView txt_title,txt_id;

        public ViewHolder(View itemView) {
            super(itemView);

            txt_title = (TextView) itemView.findViewById(R.id.txt_title);
            txt_id = (TextView) itemView.findViewById(R.id.txt_id);

        }
    }

}

اینترفیس کلیک RecyclerView

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.widget.AdapterView;

/**
 * Created by Farzad sarseify on 11/18/2015.
 */
public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener {
    private OnItemClickListener mListener;
    private OnItemLongClickListener mLongListener;

    public interface OnItemClickListener {
        public void onItemClick(View view, int position);
    }

    public interface OnItemLongClickListener {
        public void onItemClick(View view, int position);
    }



    GestureDetector mGestureDetector;

    public RecyclerItemClickListener(Context context, OnItemClickListener listener) {
        mListener = listener;
        mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                return true;
            }
        });
    }


    public RecyclerItemClickListener(Context context, OnItemLongClickListener listener) {
        mLongListener = listener;
        mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                return true;
            }
        });
    }



    @Override
    public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) {
        View childView = view.findChildViewUnder(e.getX(), e.getY());
        if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) {
            mListener.onItemClick(childView, view.getChildAdapterPosition(childView));
        }
        return false;
    }

    @Override
    public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) {
    }

    @Override
    public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

    }
}

 

رویداد کلیک RecyclerView

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.addOnItemTouchListener(
                new RecyclerItemClickListener(getApplicationContext(), new RecyclerItemClickListener.OnItemClickListener() {
                    @Override
                    public void onItemClick(View view, int position) {
                        // TODO Handle item click


                        String txt_id=((TextView)view.findViewById(R.id.txt_id)).getText().toString();


                         Intent intent=new Intent(getActivity(), CustomActivity.class);
                        
                        intent.putExtra("id",txt_id);

                        startActivity(intent);


                    }
                })
        );

 

1 کاربر پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 3 دقیقه قبل، Farzad Sarseifi گفته است :

 

پس همینکار رو انجام بدید یک  RecyclerView و اداپترش رو بنویسید


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

 

آداپتر RecyclerView


public class TestAdapter extends RecyclerView.Adapter<JuzeAdapter.ViewHolder> {


    List<Model> modelList = new ArrayList<>();

    public JuzeAdapter(Context context, List<Model> data) {
        modelList = data;
    }


    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.test_row, null);

        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

		Model model=modelList.get(position);

        holder.txt_title.setText(model.getTitle()+"");
        holder.txt_id.setText(model.getId()+"");

    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {

        TextView txt_title,txt_id;

        public ViewHolder(View itemView) {
            super(itemView);

            txt_title = (TextView) itemView.findViewById(R.id.txt_title);
            txt_id = (TextView) itemView.findViewById(R.id.txt_id);

        }
    }

}

اینترفیس کلیک RecyclerView


import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.widget.AdapterView;

/**
 * Created by Farzad sarseify on 11/18/2015.
 */
public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener {
    private OnItemClickListener mListener;
    private OnItemLongClickListener mLongListener;

    public interface OnItemClickListener {
        public void onItemClick(View view, int position);
    }

    public interface OnItemLongClickListener {
        public void onItemClick(View view, int position);
    }



    GestureDetector mGestureDetector;

    public RecyclerItemClickListener(Context context, OnItemClickListener listener) {
        mListener = listener;
        mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                return true;
            }
        });
    }


    public RecyclerItemClickListener(Context context, OnItemLongClickListener listener) {
        mLongListener = listener;
        mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                return true;
            }
        });
    }



    @Override
    public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) {
        View childView = view.findChildViewUnder(e.getX(), e.getY());
        if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) {
            mListener.onItemClick(childView, view.getChildAdapterPosition(childView));
        }
        return false;
    }

    @Override
    public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) {
    }

    @Override
    public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

    }
}

 

رویداد کلیک RecyclerView


RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.addOnItemTouchListener(
                new RecyclerItemClickListener(getApplicationContext(), new RecyclerItemClickListener.OnItemClickListener() {
                    @Override
                    public void onItemClick(View view, int position) {
                        // TODO Handle item click


                        String txt_id=((TextView)view.findViewById(R.id.txt_id)).getText().toString();


                         Intent intent=new Intent(getActivity(), CustomActivity.class);
                        
                        intent.putExtra("id",txt_id);

                        startActivity(intent);


                    }
                })
        );

 

بسیار بسیار سپاسگذارم ، پس این کار منطقی تره تا ست کردن عکس توی دیتابیس واسه هرکدوم؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 18 دقیقه قبل، hamidreza.kh گفته است :

بسیار بسیار سپاسگذارم ، پس این کار منطقی تره تا ست کردن عکس توی دیتابیس واسه هرکدوم؟

عکساتون رو تو فولدر res/mipmap بزارید و اسمش رو تو دیتابیس sqlite ذخیره کنید

1 کاربر پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط MaHdI-09
      سلام.من یک ریسایکلرویو دارم که میخوام وقتی دیتا توش اضافه کردم.بره به آخرین position  ریسایکلرویو.

      لطفا درصورت پاسخ بفرمایید در کدام کلاس باید کد ها رو بنویسم.

      با سپاس فراوان
    • توسط Omid Zakeri
      بعضی از دوستان برای انجام onLongClick و onClick در recyclerView دچار مشکل میشن.قصد من در این آموزش انجام این اعمال در recyclerView  هستش.
      برای این کار ابتدا باید یک کلاس جداگانه بنویسیم به صورت زیر:
      public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener { private OnItemClickListener mListener; private OnItemLongClickListener mLongListener; public interface OnItemClickListener { public void onItemClick(View view, int position); } public interface OnItemLongClickListener { public void onItemClick(View view, int position); } GestureDetector mGestureDetector; public RecyclerItemClickListener(Context context, OnItemClickListener listener) { mListener = listener; mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { return true; } }); } public RecyclerItemClickListener(Context context, OnItemLongClickListener listener) { mLongListener = listener; mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { return true; } }); } @Override public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) { View childView = view.findChildViewUnder(e.getX(), e.getY()); if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) { mListener.onItemClick(childView, view.getChildAdapterPosition(childView)); } return false; } @Override public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } }  
       
      بعد از اضافه کردن کلاس بالا حالا باید ازش استفاده کنیم به صورت زیر :
       
      متد onLongClick:
      recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getApplicationContext(), attachFileRecyclerView, new RecyclerTouchListener.ClickListener() { @Override public void onClick(View view, int position) { } @Override public void onLongClick(View view, final int position) { . . . } }));  
       
      متد onClick:
      recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(getApplicationContext(), new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { . . . } }));  
    • توسط hamidreza.kh
      سلام دوستان خسته نباشید 
      یک ریسایکلر ویو دارم ک خب توش چندتا آیتم هستش و توی این آیتما یه imageView دارم ! 
      این imageView رو میخوام اطلاعات یعنی عکسش رو از سرور بگیرم و در گرفتنش هم مشکلی ندارم 
      فقط مشکلی که هست اینه که این عکسایی که از سرور میگیرم هم ممکنه png باشند و هم svg ! 
      با کتابخونه picasso لود میکنم و فایل های png یا jpg رو باز میکنه ولی فایل svg یا همون وکتور رو باز نمیکنه! 
      راهکاری برای حل این مشکل دارید؟!
    • توسط ali5250
      سلام ، من برای ساخت Endless RecyclerView طبق این اموزش :
      https://stackoverflow.com/questions/37004131/implementing-endless-recyclerview
      به مشکل برخورم ، مشکلی که دارم اینه که نمیدونم ادپتر رو چطوری باید ست کنم و اطلاعات هر سطر رو بهش بدم و بصورت کلی متوجه نشدم چطور باید از این کد استفاده کنم ممنون میشم راهنمایی کنید .
    • توسط Omid Zakeri
      RecyclerViewFastScroller یک ویجت است که می توان از آن برای پیمایش سریع استفاده کرد.

       
      RecyclerViewFastScroller-master.zip

  • دوره آموزشی اندروید ایران کانادا آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin آموزش برنامه نویسی ios مهارت های فروش
    آموزش برنامه نویسی اندروید
  • فایل