راست به چپ کردن اکشن بار در اندروید

یکی از مشکلاتی که توسعه دهنده‌های آندروید ایرانی با اون دست به گریبان هستند، مشکل راست به چپ کردن اکشن بار هست.

راه‌های مختلفی برای راست به چپ کردن اکشن بار وجود داره، از جمله استفاده از custom layout برای اکشن بار. اما یکی دیگه از روش‌هایی که در این مطلب می‌خوام بهش بپردازم، استفاده از ActionBar RTLizer هست.

برای شروع فایل build.gradle رو باز کنید و به قسمت dependencies کد زیر رو اضافه کنید: (یا می‌تونید از روش‌های دیگه این کتابخانه رو به پروژه اضافه کنید)

بعد از اینکه این کد رو اضافه کردید اندروید استودیو پیغام میده که تغییرات تو فایل ایجاد شده و باید یکبار sync بشه که بعد از اینکار این کتابخانه به پروژه شما افزوده می‌شه.

حالا به اکتیویتی که میخواید راست به چپ بشه برید و در قسمت onCreateOptionsMenu کدهای زیر رو اضافه کنید. توجه کنید که این کدها باید قبل از return اضافه بشن.

بعد از اضافه کردن کدها بعضی از قسمت‌ها به رنگ قرمز در میان، این یعنی اینکه باید کلاس مربوط بهش import بشه. روی هرقسمتی که به رنگ قرمز دراومده Alt+enter بزنید و Import Class کنید.

حالا یکبار اپ رو اجرا میکنیم تا تغییرات را ببینیم.

همونطوری که بالاتر گفتم، برای انجام اینکار روش‌های دیگه‌ای هم هست، ولی این روش ساده‌ترین روشی هست که با کمترین کدزدن میشه انجام داد. نکته‌ای که هست اینکه این کتابخانه از api ۷ به بالا رو ساپورت میکنه. خودم روی api 14 تست کردم و مشکلی نداشت.

موفق باشید

17 دیدگاه برای “راست به چپ کردن اکشن بار در اندروید”

  1. سلام. ممنون از این آموزش عالی
    فقط یه سوال. در صورتی که به جای اندروید استدیو، از اکلیپس استفاده کنیم، چطور باید کدهای dependencies رو اضافه کنیم؟ آیا روش اکلیپس هم فایلی مشابه build.gradle داره؟
    ممنون

  2. سلام
    دوست عزیز من از این کتابخانه استفاده میکنم ولی یه ارور میده و اصلا راهی براش پیدا نکردم
    اونم اینه که تا برنامه شروع میشه میندازه بیرون از برنامه

    تو سایت گت هاب دستوری که شما گفتید فرق میکنه
    وقتی اونو میزنم کلا تو محیط اندروید استدیو ارور میده که این کتابخانه دسترسی پراویت داره ولی همه چیشو نگا میکنم مشکلی نداره
    ممنون میشم کمکم کنید

    1. سلام. باید پیغام خطایی که میده بررسی بشه و لاگ هم مشاهده بشه. همینطوری نمیشه گفت مشکل چیه.
      ولی در کل توصیه می‌کنم که از Toolbar استفاده کنید. اکشن‌بار دیگه ساپورت نمیشه. در آینده آموزش استفاده از تولبار رو می‌نویسم

  3. سلام، خیلی ممنون، خیلی مفید بود، فقط یه سوال داشتم:
    وقتی activity شروع میشه، ation bar اول چپ چین نمایش داده میشه، بعد از مدت خیلی کوتاهی راست چین میشه. میشه کاری کرد که از همون اول راست چین بشه؟ فکر می‌کنم فراخوانی متد onCreate و اجرای دستور setContentView تو این متد، باعث این مشکل میشه!

    ممنون

      1. کتاب خونه ی موجود نیست اضافه کنم که!
        فقط کلاس هارو اد کردم بدون
        compile ‘info.semsamot:actionbar-rtlizer:2.+@aar’
        کار کردم حل شد چون کتاب خونه ای نبود من ادش کنم بعد این کامپایل رو بزنم!
        در هر صورت مشکلم حل شد

    1. راه حل پیدا کردم
      چند راه که میتونید انجام بدید
      اگر تولبار نداشته باشید
      ActionBar actionbar = getSupportActionBar ();
      actionbar.setDisplayHomeAsUpEnabled ( true );
      actionbar.setHomeAsUpIndicator ( R.drawable.ic_action_back );
      اگر داشته باشید
      toolbar.setNavigationIcon(R.drawable.ic_action_back);
      یا
      @drawable/ic_back_arrow

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *