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

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


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

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

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

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

علیرضا رئیسی

1141

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

حسین رئیسی

700

بسیاری از رهبران نخستین بار، تیمشان را به سمت هرج و مرج تبدیل می کنند و اثربخشی آنها توسط اصطکاک های غیر ضروری کاهش می یابد.به دلیل عدم تجربه، تغییرات گسترده ای برای بهبود کارآیی سازمان هایشان و به انجام رساندن دیدگاه خود اعمال می کنند.در این مقاله نکاتی درباره چگونگی اجتناب از اختلال عملکرد در تیم شما مطرح خواهیم کرد.

حسین رئیسی

467