PlaceHolderView نمایشی برای تمام لیست ها

402
placeholderview | اُکسیما

PlaceHolderView نمایشی برای تمام لیست ها


پیاده سازی RecyclerView با محتوایی پویا و داینامیک به همراه اضافه کردن listener برای هر یک کاری بسیار آزار دهنده است. اگر ما مجبور به پیاده سازی انیمیشن نیز برای آن Recyclers باشیم، دیگر یک کابوس می شود.به همین دلیل ایده ی یک رابط کاربری بسیار ساده به ذهن رسید ، که با قدرت بیشتری، بدون اجرای آداپتور، نمایش ListView، GridView و RecyclerView را با سهولت و سادگی جایگزین می نماید .


چرا PlaceHolderView؟


  • PlaceHolderView تمام کد های مربوط به ادپتر را حذف می نماید . واقعیت شگفت انگیز این است که هیچ اداپتری برای نگرانی وجود ندارد.
  • کد بسیار مدولار است و با قرار دادن حاشیه نویسی برای هر View و متدی بسیار انعطاف پذیر می گردد.
  • No findViewById ، NO onClickListener
  • انیمیشن های بسیار جذاب در مورد آیتم ها را می توان تنها با یک خط از کد اعمال کرد.
  • مدیریت حافظه ، فوق العاده آسان با این کتابخانه است

برخی از برنامه ها :


  • Navigation Drawer
  • placeholderview1-oxima

  • Image Gallery
  • placeholderview2-oxima

راهنمای استفاده از PlaceHolderView:


گام اول :


افزودن depndency در فایل build.gradle برنامه

        
            dependencies {
                 implementation 'com.mindorks:placeholderview:0.2.7'
            }
        
    

گام دوم :


PlaceHolderView را در Res / layout / activity_main.xml اضافه کنید

        
            < com.mindorks.placeholderview.PlaceHolderView
                    android:id="@+id/galleryView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"/>
        
    

گام سوم :


ایجاد یک item view در مسیر res / layout / gallery_item_big.xml

        
            < ?xml version="1.0" encoding="utf-8"?>
            < LinearLayout 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"
                          android:orientation="horizontal"
                          tools:context="com.mindorks.test.MainActivity">

                < com.mindorks.placeholderview.PlaceHolderView
                        android:id="@+id/placeHolderView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"/>

            < /LinearLayout>
        
    

گام چهارم :


ایجاد ItemTypeBig.java

        

            @Animate(Animation.ENTER_LEFT_DESC)
            @NonReusable
            @Layout(R.layout.gallery_item_big)
            public class ImageTypeBig {

                @View(R.id.imageView)
                private ImageView imageView;

                private String mUlr;
                private Context mContext;
                private PlaceHolderView mPlaceHolderView;

                public ImageTypeBig(Context context, PlaceHolderView placeHolderView, String ulr) {
                    mContext = context;
                    mPlaceHolderView = placeHolderView;
                    mUlr = ulr;
                }

                @Resolve
                private void onResolved() {
                    Glide.with(mContext).load(mUlr).into(imageView);
                }

                @LongClick(R.id.imageView)
                private void onLongClick(){
                    mPlaceHolderView.removeView(this);
                }

            }
        
    

حاشیه نویسی ها:


  • @Layout: Bind the XML layout with the class
  • @View : Bind the variable with the view defined in the above layout
  • @Click : Bind the OnClickListener to a view
  • @LongClick : Bind the long click listerner to a view
  • @Resolve : Any operation being performed on the view reference defined by @View should be annotated with @Resolve

  • @Animate(Animation.ENTER_LEFT_DESC) : Sets the defined animations in the Animation class on this item view
  • @NonReusable : Releases the view reference along with all the attached references in the view object. This view object should not be used again in the addView()


گام پنجم (اختیاری) :


اگر PlaceHolderView با طرح grid یا طرح staggered یا هر طرح سفارشی مورد نیاز باشد می توانید از کلاس Builder ارائه شده استفاده کنید.

        

            // If customisation is Required then use Builder with the PlaceHolderView
            placeHolderView.getBuilder()
                .setHasFixedSize(false)
                .setItemViewCacheSize(10)
                .setLayoutManager(new GridLayoutManager(this, 3));

        
    

گام پنجم :


در MainActivity.java یک شی از PlaceHolderView به دست آورید و ایتم ها را در آن اضافه کنید.

        

            PlaceHolderView mGalleryView = (PlaceHolderView)findViewById(R.id.galleryView);
            mGalleryView
                   .addView(new ImageTypeBig(this.getApplicationContext(), mGalleryView, url1));
                   .addView(new ImageTypeBig(this.getApplicationContext(), mGalleryView, url2));
                   .addView(new ImageTypeBig(this.getApplicationContext(), mGalleryView, url3));
                   .addView(new ImageTypeBig(this.getApplicationContext(), mGalleryView, url4));

        
    

شما به راحتی می توانید از PlaceHolderView به عنوان جایگزینی مناسب برای RecyclerView استفاده کنید و از آن لذت ببرید . در قسمت دیدگاه ها، نظر خود را در خصوص این نوع از نمایش لیست ها در اندروید با ما در میان بگذارید .

پیوست ها :
  • این مقاله دارای پیوست نمی باشد.
loder | اُکسیما
»» نویسنده مقاله
حسین رئیسی | اُکسیما

حسین رئیسی
»» پشتیبانی مقاله

تیم پشتیبانی اُکسیما به صورت 24 ساعت در هر زمان و مکان، پاسخگوی تمامی سوالات و ابهامات شما در مورد این مقاله خواهند بود. بدین منظور شما می توانید از طریق روش های زیر از پشتیبانی فنی این مقاله برخوردار گردید. تیم پشتیبانی این اطمینان خاطر را به شما دانشجویان گرامی خواهند داد که در سریع ترین زمان ممکن پاسخگوی شما عزیزان باشند.


به اشتراک بگذارید ...

دوستان و همراهان گرامی : آیا تمایل دارید این مقاله را با دوستان و آشنایان خود در تلگرام به اشتراک بگذارید؟

مقاله های پیشنهادی

کل استراتژی تجارت در استراتژی بازاریابی خلاصه می شود . توانایی جذب جوانب مطلوب ، ضامن موفقیت شما در تجارت است . شما مسئول ایجاد تصمیمات استراتژیک اساسی برای تجارت خود ، به ويژه در این چهار زمینه هستید .

حسین رئیسی

508

شما ممکن است شنیده باشید که پایتون محبوبیت زیادی را به دست آورده است، اما آیا می دانستید که در حال حاضر محبوب ترین زبان آموزشی و مقدماتی در دانشگاه های آمریکا است ؟ همینطور این زبان ، با توجه به بررسی IEEE ، چهارمین زبان محبوب دنیا بعد از زبان های کلاسیک و قدیمی جاوا، C و C ++ است ؟

حسین رئیسی

746

گوگل ، کمپانی که کار خود را با ایجاد یک موتور جستجو اغاز کرده است تعدادی سیستم عامل شگفت انگیز در کارنامه خود دارد . اندروید و گول کروم از ان جمله هستند .در حال حاضر این شرکت در حال کار بر روی یک جایگزین کاملا جدید است : سیستم عامل مرموز فیوژا تا همین اواخر هیچ اطلاعاتی از برنامه های گوگل برای این سیستم عامل جدید وجود نداشت . اما شایعات اخیرا ادعا میکنند که تیم Fuchia در تلاش است تا آن را در تمام دستگاه ها اجرا نماید .

حسین رئیسی

648