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

کتابخانه ای که شما می توانید هر کدام از ایتم های موجود در لیست خود را بین دیگر آیتم ها جابجا کنید یا به عبارتی با درگ کردن آیتم مکان و position آنها را تغییر دهید

 

recyclerviewhelper

 

موارد زیر را در بخش dependency به پروژه خو اضافه کنید : 

// Required
implementation "com.android.support:appcompat-v7:{latest version}'
implementation "com.android.support:recyclerview-v7:{latest version}'

// RecyclerViewHelper
implementation 'com.github.nisrulz:recyclerviewhelper:{latest version}'

 

build.gradle
allprojects {
  repositories {
    google()
    jcenter()
  }
}

 

 

آداپتر مورد نظر برای لیست به صورت زیر ی باید:

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ItemViewHolder> implements RVHAdapter {
    
         ...
    
        @Override
        public boolean onItemMove(int fromPosition, int toPosition) {
            swap(fromPosition, toPosition);
            return false;
        }
    
        @Override
        public void onItemDismiss(int position, int direction) {
            remove(position);
        }
    
        public class ItemViewHolder extends RecyclerView.ViewHolder implements RVHViewHolder {
            ...
               
            @Override
            public void onItemSelected(int actionstate) {
                System.out.println("Item is selected");
            }
    
            @Override
            public void onItemClear() {
                System.out.println("Item is unselected");
    
            }
        }
    
        // Helper functions you might want to implement to make changes in the list as an event is fired
        private void remove(int position) {
            dataList.remove(position);
            notifyItemRemoved(position);
        }
    
        private void swap(int firstPosition, int secondPosition) {
            Collections.swap(dataList, firstPosition, secondPosition);
            notifyItemMoved(firstPosition, secondPosition);
        }
    }

 

 

public class MainActivity extends AppCompatActivity {
   
   
       RecyclerView myrecyclerview;
       ArrayList<String> data;
       MyAdapter adapter;
   
       @Override
       protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_main);
   
           myrecyclerview = (RecyclerView) findViewById(R.id.rv_fruits);
   
           data = new ArrayList<>();
           data.add("Apple");
           ...
           data.add("Fig");
   
           // Setup your adapter
           adapter = new MyAdapter(data);
           // Setup 
           myrecyclerview.hasFixedSize();
           myrecyclerview.setLayoutManager(new LinearLayoutManager(this));
           myrecyclerview.setAdapter(adapter);
   
   
           // Setup onItemTouchHandler to enable drag and drop , swipe left or right
           ItemTouchHelper.Callback callback = new RVHItemTouchHelperCallback(adapter, true, true,
                   true);
           ItemTouchHelper helper = new ItemTouchHelper(callback);
           helper.attachToRecyclerView(myrecyclerview);
   
           // Set the divider in the recyclerview
           myrecyclerview.addItemDecoration(new RVHItemDividerDecoration(this, LinearLayoutManager.VERTICAL));
   
           // Set On Click Listener
           myrecyclerview.addOnItemTouchListener(new RVHItemClickListener(this, new RVHItemClickListener.OnItemClickListener() {
               @Override
               public void onItemClick(View view, int position) {
                   String value = "Clicked Item " + data.get(position) + " at " + position;
   
                   Log.d("TAG", value);
                   Toast.makeText(MainActivity.this, value, Toast.LENGTH_SHORT).show();
               }
           }));
   
       }
   }

 

 

 

پشتیبانی recyclerviewhelper

recyclerviewhelper-develop.zip

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


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

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط Omid Zakeri
      با استفاده از این کتابخانه شما میتوانید  ckeckBox هایی دارای حالت انیمیشن را به برنامه خود اضافه کنید
       

       
       
      build.gradle
      repositories { // ... maven { url "https://jitpack.io" } }  
      dependency 
      dependencies { compile 'com.github.lguipeng:AnimCheckBox:1.0.1' }  
       
       
      **Maven**
      <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository> <dependency> <groupId>com.github.lguipeng</groupId> <artifactId>AnimCheckBox</artifactId> <version>1.0.1</version> </dependency>  
       
      Layout File
      <com.github.lguipeng.library.animcheckbox.AnimCheckBox android:layout_gravity="center_horizontal" android:layout_width="80dp" android:padding="4dp" android:layout_height="wrap_content" app:stroke_width="4dp" app:stroke_color="#2196F3" app:circle_color="#1976D2" app:checked="true"/>  
       
       
      Java File
      AnimCheckBox checkbox = (AnimCheckBox)findViewById(R.id.checkbox) checkbox.setChecked(true); boolean animation = true; checkbox.setChecked(false, animation);  
       
       
      support AnimCheckBox
      AnimCheckBox-master.zip
    • توسط Omid Zakeri
      شما با استفاده از این کتابخانه زیبا و جذاب میتوانید لیست contact یا هر لیست دیگر را به صورت نمایه زیر نمایش دهید:
       

       
       
      حالا برای دانلود این کتابخانه قسمت زیر را در gradle اضافه کنید:
      dependencies { compile 'com.gjiazhe:wavesidebar:1.3' }  
       
      و در قسمت Layout میتوانید از این کتابخانه به صورت زیر استفاده کنید:
      <com.gjiazhe.wavesidebar.WaveSideBar android:id="@+id/side_bar" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingRight="8dp" app:sidebar_position="right" app:sidebar_max_offset="80dp" app:sidebar_lazy_respond="false" app:sidebar_text_color="#8D6E63" app:sidebar_text_size="14sp" app:sidebar_text_alignment="center"/>  
       
      سری ویژگی های این کتابخانه شامل موارد زیر است :
       

       
       
      شما می توانید از این ویژگی ها در قسمت layout یا در قسمت اکتیویتی استفاده کنید :
      WaveSideBar sideBar = (WaveSideBar) findViewById(R.id.side_bar); sideBar.setTextColor(Color.BLACK); sideBar.setMaxOffset(100); sideBar.setPosition(WaveSideBar.POSITION_LEFT); sideBar.setTextAlign(WaveSideBar.TEXT_ALIGN_CENTER); sideBar.setLazyRespond(true);  
       
      WaveSideBar sideBar = (WaveSideBar) findViewById(R.id.side_bar); sideBar.setOnSelectIndexItemListener(new WaveSideBar.OnSelectIndexItemListener() { @Override public void onSelectIndexItem(String index) { Log.d("WaveSideBar", index); // Do something here .... } });  
      شما با استفاده از متد setIndexItems می توانید برای Customize استفاده کنید.
       
      با استفاده از متد setPosition شما می توانید موقعیت قرار گیری آیتم هارا انتخاب کنید:
      sideBar.setPosition(WaveSideBar.POSITION_LEFT);
       
       
       
      پشتیبانی WaveSideBar
       
      WaveSideBar-master.zip
    • توسط Omid Zakeri
      این کتابخانه به منظور ارائه انیمیشن های جدید برای اکتیویتی ها در Android ایجاد شده است. با استفاده از کلاس ViewDragHelper، می توانید انیمیشن هایی  ایجاد کنید که امکان کنترل کامل نمایش را توسط کاربر فراهم می کند.
      Dragger در حال حاضر با استفاده از Rebound (کوچک، 41.7kb) از فیس بوک برای ارائه انیمیشن های واقع گرایانه و بهبود عملکرد دستگاه های قدیمی است.
      این کتابخانه باید بر روی API 10 کار کند.
       

       
       
      برای استفاده از این کتابخانه شما ابتدا موارد زیر را به build.gradle اضافه کنید:
      repositories { maven { url "https://jitpack.io" } } dependencies { compile 'com.github.ppamorim:dragger:1.2' }  
      سپس می توانید از این کتابخانه به صورت زیر استفاده کنید :
      <com.github.ppamorim.library.DraggerView android:layout_width="match_parent" android:layout_height="match_parent" dragger_layout:drag_view_id="@+id/drag_view" dragger_layout:shadow_view_id="@+id/shadow_view" dragger_layout:drag_position="top"> <FrameLayout android:id="@+id/shadow_view" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/transparent" android:visibility="invisible"/> <LinearLayout android:id="@+id/drag_view" android:layout_width="match_parent" android:layout_height="match_parent"/> </com.github.ppamorim.library.DraggerView>  
       
      قسمت styles:
      <style name="YourTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:windowAnimationStyle">@null</item> </style>  
       
      شما میتوانید در قسمت manifest اکتیویتی مربوطه را اضافه کنید :
      <activity android:name="com.github.dragger.BaseActivity" android:theme="@style/YourTheme"/>  
       
      یا از روش زیر میتوانید استفاده کنید:
      public class YourActivity extends DraggerActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setShadowView(R.layout.custom_shadow); // It is not necessary, use if you want. setContentView(R.layout.layout_content); } }  سری متد هایی که شما می توانید در این کاتبخانه استفاده کنید و به صورت Custom نمایش دهید:
      setDraggerCallback(DraggerCallback) //Interface that's provides some infos of the animation. setSlideEnabled(boolean) //Enable or disable the drag, useful to use with ScrollViews. setHorizontalDragRange(float) //Draggable distance that the draggableView can use, horizontally. setVerticalDragRange(float) //Draggable distance that the draggableView can use, vertically. setRunAnimationOnFinishInflate(boolean) //Run the initial animation, useful if you only want the drag function. setDraggerLimit(float) //Set the max limit drag, default is 0.5 (center of the screen). setDraggerPosition(DraggerPosition) //Set the position of archor. setTension(float) //Tension of the animation. This represent with the friction, how much time the animation will be executed. setFriction(float) //Friction of the animation. This represent with the tension, how much friction is applied at the tension animation. show() //Show the drag view with Rebound animation. closeActivity() //Simply close the activity with Rebound animation, based of the DraggerPosition choosen.  
       
       
       
      پشتیبانی:Dragger
       
      Dragger-master.zip
    • توسط Majid Ebrahimi
      ابتدا کتابخانه vitamio را به عنوان به عنوان یک کتابخانه به محیط توسعه خود اضافه کنید.این کتابخانه در این لینک قابل دریافت است:
      https://github.com/yixia/VitamioBundle
      باید توجه کنید که پس از دانلود شما قسمتی که فولدری به نام vitamio دارد را برای این آموزش نیاز دارید.
      سپس یک پروژه به نام VitamioVideo ایجاد کرده و در کد های زیر را به ترتیب در فایل ایکس ام ال و سپس در اکتیویتی می نویسیم.
      main.xml :
       
      <?xml version="1.0" encoding="utf-8"?> android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal"> android:id="@+id/surface_view" android:layout_width="wrap_content" android:layout_height="wrap_content"/>  
       
      که در آن ک ویدیو ویو از کلاس io.vov.vitamio.widget.VideoView در آن قرار دارد.
      سپس در اکتیویتی VitamioVideoActivity:
       
      package com.VitamioVideo; import io.vov.vitamio.LibsChecker; import io.vov.vitamio.MediaPlayer; import io.vov.vitamio.widget.MediaController; import io.vov.vitamio.widget.VideoView; import android.app.Activity; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.Toast; public class VitamioVideoActivity extends Activity { private String pathToFileOrUrl = "http://hw14.asset.aparat.com/aparat-video/1d7288ace5ce9cc812f6cf5b99d2b8b62642090-360p__87605.mp4"; private VideoView mVideoView; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); if ( !LibsChecker.checkVitamioLibs(this)) return; setContentView(R.layout.main); mVideoView = (VideoView) findViewById(R.id.surface_view); if (pathToFileOrUrl == "") { Toast.makeText(this, "Please set the video path for your media file", Toast.LENGTH_LONG).show(); return; } else { /* * Alternatively,for streaming media you can use * mVideoView.setVideoURI(Uri.parse(URLstring)); */ mVideoView.setVideoPath(pathToFileOrUrl); mVideoView.setMediaController(new MediaController(this)); mVideoView.requestFocus(); mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { // optional need Vitamio 4.0 mediaPlayer.setPlaybackSpeed(1.0f); } }); } } public void startPlay(View view) { if ( !TextUtils.isEmpty(pathToFileOrUrl)) { mVideoView.setVideoPath(pathToFileOrUrl); } } public void openVideo(View View) { mVideoView.setVideoPath(pathToFileOrUrl); } }  
      که در آن یک شی از ویدیو ویو ویتامیو ساخته و به ایکس ام ال پیوند داده شده است و سپس کار های لازم و اولیه برای دکمه های پلیر انجام شده و سپس url فایلی که باید آنلاین پخش شود را به ویدیو ویو نسبت داده.سپس ویدیو ویو با کمک لیستنر به محض آماده شدن اولیه فایل را پخش می کند.
      در فایل منیفست برنامه نیز باید تغییراتی انجام داد که در زیر شاهد آن خواهیم بود :
       
      <?xml version="1.0" encoding="utf-8"?> package="com.VitamioVideo" android:versionCode="1" android:versionName="1.0" > android:icon="@drawable/ic_launcher" android:label="@string/app_name" > android:name=".VitamioVideoActivity" android:label="@string/app_name" > android:name="io.vov.vitamio.activity.InitActivity" android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation" android:launchMode="singleTop" android:theme="@android:style/Theme.NoTitleBar" android:windowSoftInputMode="stateAlwaysHidden" />  
      علاوه بر دسترسی های لازم که قرار داده شده است اکتیویتی آماده سازی اولیه یا مقدار دهی اولیه کامپوننت ویتامیو نیز خود نمایی می کند.
      این نکته را در نظر داشته باشید که بجای یک ویدیو آنلاین شما می توانید یک ویدیو آفلاین را هم پخش کنید.
      سپس می توانید را اجرا کردن برنامه نتیجه حاصله را ببینید و از این پلیر قدرتمند لذت ببرید.
      امیدواریم این آموزش موثر واقع شود و تاثیری حتی کوچک در پیشرفت شما دوستان ایفا کند.

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