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

منوی کشویی یا همان navigation drawer یکی از امکاناتی است که اکثر توسعه دهندگان اندروید آنرا در پروژه های خود پیاده سازی می کنند.هرچند روش های مختلفی برای پیاده سازی navigation drawer وجود دارد ولی در این روش یکی از آسان ترین و سریع ترین روش پیاده سازی منوی کشویی می باشد.

 

کتابخانه material-drawerکتابخانه material-drawerکتابخانه material-drawer

 

 

 

Gradle dependency

repositories {
    // ...
    maven { url 'https://jitpack.io' }
}


dependencies {
    compile 'com.heinrichreimersoftware:material-drawer:2.3.3'
}

 

 در مرحله اول باید اکتیویتی مورد نظر extend  بشه از  DrawerActivity بصورت زیر :

public class MainActivity extends DrawerActivity {}

 

 

 

تنظیمات قسمت profile

addProfile(
        new DrawerProfile()
                .setRoundedAvatar((BitmapDrawable)getResources().getDrawable(R.drawable.profile_avatar))
                .setBackground(getResources().getDrawable(R.drawable.profile_cover))
                .setName(getString(R.string.profile_name))
                .setDescription(getString(R.string.profile_description))
                .setOnProfileClickListener(new DrawerProfile.OnProfileClickListener() {
                    @Override
                    public void onClick(DrawerProfile drawerProfile, long id) {
                        Toast.makeText(MainActivity.this, "Clicked profile #" + id, Toast.LENGTH_SHORT).show();
                    }
                })
        );

 

 

 

 

گروهبندی drawer list

addItem(
        new DrawerItem()
                .setImage(getResources().getDrawable(R.drawable.ic_first_item))
                .setTextPrimary(getString(R.string.title_first_item))
                .setTextSecondary(getString(R.string.description_first_item))
                .setOnItemClickListener(new DrawerItem.OnItemClickListener() {
                    @Override
                    public void onClick(DrawerItem drawerItem, long id, int position) {
                        Toast.makeText(MainActivity.this, "Clicked first item #" + id, Toast.LENGTH_SHORT).show();
                    }
                })
        );
addDivider();


addItem(
        new DrawerItem()
                .setImage(getResources().getDrawable(R.drawable.ic_second_item))
                .setTextPrimary(getString(R.string.title_second_item))
                .setOnItemClickListener(new DrawerItem.OnItemClickListener() {
                    @Override
                    public void onClick(DrawerItem drawerItem, long id, int position) {
                        Toast.makeText(MainActivity.this, "Clicked second item #" + id, Toast.LENGTH_SHORT).show();
                    }
                })
        );

 

 

 

 

قسمت زیر را به style برنامه اضافه کنید (theme)

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryDark">@color/color_primary_dark</item>
    <item name="colorAccent">@color/color_accent</item>
    <item name="actionBarStyle">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>

 

 

 

 

برای افزودن یا تغییر theme منوی کشویی از روش زیر استفاده کنید:

setDrawerTheme(
        new DrawerTheme(this)
                .setBackgroundColorRes(R.color.background)
                .setTextColorPrimaryRes(R.color.primary_text)
                .setTextColorSecondaryRes(R.color.secondary_text)
                .setTextColorPrimaryInverseRes(R.color.primary_text_inverse)
                .setTextColorSecondaryInverseRes(R.color.secondary_text_inverse)
                .setHighlightColorRes(R.color.highlight)
);

 

 

 

https://github.com/HeinrichReimer/material-drawer

material-drawer-master.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
    • توسط Farzad Sarseifi
      کتابخانه Dexter در اندروید

       
      با استفاده از این کتابخانه میتوانید در زمان Runtime مجوز های high permission را از کاربر بگیرید Grant Permission
       
      طریقه استفاده :
      Gradle
      dependencies{ implementation 'com.karumi:dexter:4.2.0' }  
      پیاده سازی در اکتیویتی :
       
      public MyActivity extends Activity { @Override public void onCreate() { super.onCreate(); Dexter.withActivity(activity) .withPermission(permission) .withListener(listener) .check(); } }  
      لینک اصلی کتابخانه
      https://github.com/Karumi/Dexter
       
      ------------------------
      مثال
      مجوز Camera :
      Dexter.withActivity(this) .withPermission(Manifest.permission.CAMERA) .withListener(new PermissionListener() { @Override public void onPermissionGranted(PermissionGrantedResponse response) { // permission is granted, open the camera } @Override public void onPermissionDenied(PermissionDeniedResponse response) { // check for permanent denial of permission if (response.isPermanentlyDenied()) { // navigate user to app settings } } @Override public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) { token.continuePermissionRequest(); } }).check();  
       
    • توسط Omid Zakeri
      یک کتابخانه بسیار زیبا که جابجایی بین تب ها در فرگمنت ها را بصورت حبابی نمایش می دهد
       
       

       
       

       
      دانلود :
      compile 'com.github.florent37:bubbletab:1.0.2'  
      BubbleTab را به صورت زیر به layout.xml خود اضافه کنید
      شما میتوانید دو پارامتر زیر را اضافه کنید
      circleColor circleRatio <com.github.florent37.bubbletab.BubbleTab android:id="@+id/bubbleTab" android:layout_width="match_parent" android:layout_height="wrap_content" android:clipToPadding="false" android:background="@android:color/white" android:elevation="10dp" app:bubbleTab_circleColor="@color/colorAccent" app:bubbleTab_circleRatio="1.25" > <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:padding="16dp" android:src="@drawable/bubbletab_ic_hourglass_selector" /> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:padding="16dp" android:src="@drawable/bubbletab_ic_event_selector" /> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:padding="16dp" android:src="@drawable/bubbletab_ic_query_selector" /> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:padding="16dp" android:src="@drawable/bubbletab_ic_search_selector" /> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:padding="16dp" android:src="@drawable/bubbletab_ic_home_selector" /> </com.github.florent37.bubbletab.BubbleTab> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent"/>  
       
      سپس برای set کردن viewPager از روش زیر استفاده کنید
      bubbleTab.setupWithViewPager(viewPager);  
       
       
      پشتیبانی: BubbleTab
       
      BubbleTab-master.zip

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