بسم الله الرحمن الرحیم

بعد از خیلی وقت بالاخره تصمیم گرفتم هرچی رو که دارم یاد میگیرم و توی سایت های فارسی نیست من توی الفبا بزارم.

آموزشی که امروز میخوام خدمتتون عرض کنم یه آموزش بسیار کاربردی برای اپلیکیشن هایی هست که در سطح رسمی و خیلی بزرگ طراحی میشن مثل اینستا و...

توی تلگرام هم به همین روش پیاده شده یعنی یه اکتویتی به نام launchActiivty و فرگمنت های مختلف مثل صفحه چت صفحه مشخصات گروه و کانال و.... به صورت فرگمنت پیاده شدن. از این بابت میگم که خیلی مهمه!

خب بریم سراغ آموزش: 

همونطور که میدونید یا اگه نمیدونید بدونید که ما برای پیاده سازی یه فرگمنت توی یه اکتیویتی چند تا راه داریم اما برای پیاده سازی فرگمنت های استاتیک یا پویا که (مثلا روی درباره ما کلیک میکنی یه فرگمنت روی قبلی باز شه) یه روش داریم.

وارد فایل لایوت اکتیویتی بشید و همه ویو ها رو بچینید و جایی رو که میخواید فرگمنت نشون داده بشه یه FrameLayout بزارید

حالا کلاس MainActivity رو باز کنید و توی onCreate کد های زیر رو کپی کنید:

        PaintFragment paintFragment = new PaintFragment();
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.addToBackStack(paintFragment .toString());
        ft.replace(R.id.frameLayout, paintFragment );
        ft.commit();
  • paintFragment یک فرگمنت فرضی است
  • همه کلاس ها و توابعتون رو از کتابخونه ساپورت، ایمپورت کنید (مثلا اکتیویتی اصلیتون رو از کلاس android.support.v7.app.AppCompatActivity ارث بری کنید)
  • تابع addToBackStack زمانی استفاده میشه که بخواید بعد از زدن کلید برگشت، به فرگمنت قبلی برید

خب تا اینجای آموزش توی همه سایت ها هست ولی ما میخوایم یه خورده پیشرفته تر بسازیم.

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

برای اینجور کار ها ما باید کد بالا رو بزاریم توی یه تابع و از هر فرگمنتی که خواستیم با صدا زدن تابع getActivity() اون اکتیویتی والد رو بگیریم و اون تابعی رو که ساختیم صدا بزنیم و فرگمنت جدید رو که میخوایم باز کنیم به تابع بدیم تا با همون کد بالا تابع جدید رو باز کنه. اینجوری هر موقع هم که دکمه برگشت رو بزنید، فرگمنت قبلی رو خودش اتوماتیک نشون میده و نیاز به کد های اضافه نیست

فعلا تا اینجای آموزش رو داشته باشید تا آموزش بعدی.

امیدوارم که این سری از اموزشام به دردتون بخوره (که به نظر من خیلی کاربردیه).

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

فعلا یاعلی