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

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


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

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

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

ProgressButton یک کتابخانه ساده برای نمایش یک باتن همراه با وضعیت لود شدن می باشد که شما می توانید از آن به عنوان یک باتن برای دانلود استفاده نمایید .

حسین رئیسی

214

کتابخانه DialogBuilder یک کتابخانه سبک و ساده در عین حال با قابلیت های کاستوم سازی بسیار برای نمایش دایالوگ به دو صورت AlertDialog و BottomSheet در اندروید می باشد .

حسین رئیسی

148

اخیرا استفاده از React Native برای توسعه برنامه های Android بسیار رایج شده است. با این حال، راه اندازی React Native در ویندوز چالش برانگیز است و نیاز به توجه به موارد بسیاری دارد، حتی اگر بخواهید یک برنامه ساده را بر روی یک شبیه ساز اجرا کنید. بایستی این چالش ها را در ابتدا حل کنید. در این مقاله، درباره نحوه تنظیم محیط توسعه خود در ویندوز با استفاده از چارچوب React Native و Android Studio برای ساخت برنامه های Android می پردازیم.

حسین رئیسی

344