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

204
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 ساعت در هر زمان و مکان، پاسخگوی تمامی سوالات و ابهامات شما در مورد این مقاله خواهند بود. بدین منظور شما می توانید از طریق روش های زیر از پشتیبانی فنی این مقاله برخوردار گردید. تیم پشتیبانی این اطمینان خاطر را به شما دانشجویان گرامی خواهند داد که در سریع ترین زمان ممکن پاسخگوی شما عزیزان باشند.


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

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

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

توسعه ی برنامه های هیبریدی باعث می شود که کار برای توسعه دهندگان وب بسیار ساده شود چرا که آن ها یک برنامه واحد ایجاد می کنند که کارآمد در سیستم عامل های متعدد مانند iOS، Android و windows می باشد بدون اینکه هیچ گونه تلاش اضافی انجام دهند. همچنین مزایای استفاده از برنامه Hybrid که شامل توسعه هزینه های مؤثر، دسترسی به طیف گسترده ای از قابلیت های سخت افزاری / نرم افزاری متعدد و ... می باشد. بنابراین، می توان آن را یک سرمایه گذاری سودآور برای مردم دانست .

حسین رئیسی

301

FancyButton یک باتن قدرتمند برای اندروید هست با ویژگی های زیر : Border (stroke, radius, color)- Background (normal, focus)- Icon (Drawable, font Icon)- Icon (Position, size)- Icon Size- Icon Padding

حسین رئیسی

325

بسیاری از مردم از من می پرسند که چه زبان برنامه نویسی را یاد بگیرند. این یک سوال بسیار سخت برای پاسخ است. چیزهای زیادی وجود دارد که قبل از تصمیم گیری باید در نظر گرفته شود. یکی از ساده ترین راه های انتخاب بهترین زبان برنامه نویسی برای یادگیری در سال 2018، توجه به بازار است. بازار به شما می گوید که زبان های برنامه نویسی مورد علاقه برای آینده چیست. ما باید از روند و تماشای اخبار و ظهور تکنولوژی جدید آگاهی داشته باشیم تا بتوانیم بادبان ها را در مورد زبان های برنامه نویسی یاد بگیریم، مخصوصا در سال 2018.

حسین رئیسی

483