رفتن به مطلب
  • 0

نمایش اکتیوتی در فرگمنت


soroush80

سوال

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

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

8 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

درود،

در مورد سوالتون باید بگم که امکان اجرایِ یک Activity در Fragment وجود نداره. یعنی یه Fragment نمیتونه از یه Activity میزبانی کنه و اون رو نمایش بده.

در 3 ساعت قبل، soroush80 گفته است :

علتشم اینه که فرگمنت بعضی کد ها رو پشتیبانی نمیکنه و به مشکل میخورم

در مورد این "بعضی کدها" که گفتید میشه توضیح بدید؟ تا حالا با چنین موردی برخورد نکردم و برام جالبه که بدونم!

دقیقا میخواید چه کاری انجام بدید که Fragment اجازه نمیده ؟ 

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

در 1 دقیقه قبل، مهران محمودی گفته است :

درود،

در مورد سوالتون باید بگم که امکان اجرایِ یک Activity در Fragment وجود نداره. یعنی یه Fragment نمیتونه از یه Activity میزبانی کنه و اون رو نمایش بده.

در مورد این "بعضی کدها" که گفتید میشه توضیح بدید؟ تا حالا با چنین موردی برخورد نکردم و برام جالبه که بدونم!

دقیقا میخواید چه کاری انجام بدید که Fragment اجازه نمیده ؟ 

مشکلم اینه که من هنوز مبتوی هستم و دارم آموزش میینم و توی بیشتر آموزش ها با ِActivity تدریس میشه به خاطر همین همش به مشکل میخورم.

البته بعضی جا ها میگن میشه من فکر کنم شما منظور منو بد فهمیدید در اصل میخوام وقتی فرگمنت باز میشه اون اکتیویوتی رو نمایش بده. یعنی واقعا نمیشه؟

اخه من از bottom bar استفاده کردم الان توی اینجوری به مشکل خوردم توی آموزش با اکتیویتی کار میکنه منم هر دو خط یک بار گیر میکنم .

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

در 17 دقیقه قبل، soroush80 گفته است :

مشکلم اینه که من هنوز مبتوی هستم و دارم آموزش میینم و توی بیشتر آموزش ها با ِActivity تدریس میشه به خاطر همین همش به مشکل میخورم.

البته بعضی جا ها میگن میشه من فکر کنم شما منظور منو بد فهمیدید در اصل میخوام وقتی فرگمنت باز میشه اون اکتیویوتی رو نمایش بده. یعنی واقعا نمیشه؟

اخه من از bottom bar استفاده کردم الان توی اینجوری به مشکل خوردم توی آموزش با اکتیویتی کار میکنه منم هر دو خط یک بار گیر میکنم .

ببین فرگمنت ها میشه گفت همون اکتیویتی هستن و همه ی کارایی که اکتیویتی ها میتونن انجام بدن رو انجام میدن

و اینکه فرگمنت هارو توی اکتیویتی میشه نشون داد اما اکتیویتی رو نمیشه توی فرگمنت نشون داد

در اصل بدون اکتیویتی و فریم لایوت فرگمنت رو نمیشه نشون داد

هرجا کدی که داخل اکتیویتی میزدین مشکل داشت کافیه اولش یه دونه getActivity() بذارید

getActivity()

----
getActivity().startActivity(new ...);

 

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

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

در 1 دقیقه قبل، Gray Mind گفته است :

ببین فرگمنت ها میشه گفت همون اکتیویتی هستن و همه ی کارایی که اکتیویتی ها میتونن انجام بدن رو انجام میدن

و اینکه فرگمنت هارو توی اکتیویتی میشه نشون داد اما اکتیویتی رو نمیشه توی فرگمنت نشون داد

در اصل بدون اکتیویتی و فریم لایوت فرگمنت رو نمیشه نشون داد

هرجا کدی که داخل اکتیویتی میزدین مشکل داشت کافیه اولش یه دونه getActivity() بذارید


getActivity()

----
getActivity().startActivity(new ...);

 

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

خیلی ممنون

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

2 تا راه دارید شما:

1- وقتی آموزش هایی که دارید میبینید با Activity تدریس میشه، شما هم با Activity کار کنید و وقتی دستتون راه افتاد برید سراغ Fragment.

2- آموزش هایی رو ببینید که با Fragment تدریس کنن!  :gamer2:

جدا از شوخی!

عمیق تر بخوایم نگاه کنیم، Activity و Fragment شدیدا به هم شبیه هستن و تفاوت عمده ای که دارن دقیقا تو همین بحثِ میزبانی از اون یکیه! به این صورت که تنها Activity میتونه از Fragment میزبانی کنه و بالعکس امکان پذیر نیست. به این صورت که Acitivity خودش میتونه به عنوان یک "اساس | زمینه" یا Context استفاده بشه اما Fragment حتما باید در یک Context دیگه قرار بگیره! که در جاوا با متد getContext میتونیم بهش دسترسی داشته باشیم.

از لحاظ LifeCycle و چرخه حیات هم نسبتا به هم شبیه هستن. عکس موجود در این آدرس رو نگاه کنید بهتر متوجه این قضیه میشید.  GitHub - xxv/android-lifecycle: A diagram of the Android Activity / Fragment lifecycle

در پیوست همین پست ببینید که BottomBar یا BottomNavigationView با Fragment  به خوبی کار میکنه.

به طور کلی، عملی نیست که تو Fragment نشه انجام داد! نهایتا با کمی تغییر نسبت به Activity انجام شدنیِ.

میبینید یه اپلیکیشن فراگیر مثل Instagram شدیدا به Fragment ها متکی هستش و تقریبا تمام بخش هاش با Fragment پیاده سازی شده!

بیشتر از این سرتون رو درد نمیارم! این قصه سر دراز دارد...

موفق باشید.

GIF.gif

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

در 5 دقیقه قبل، مهران محمودی گفته است :

2 تا راه دارید شما:

1- وقتی آموزش هایی که دارید میبینید با Activity تدریس میشه، شما هم با Activity کار کنید و وقتی دستتون راه افتاد برید سراغ Fragment.

2- آموزش هایی رو ببینید که با Fragment تدریس کنن!  :gamer2:

جدا از شوخی!

عمیق تر بخوایم نگاه کنیم، Activity و Fragment شدیدا به هم شبیه هستن و تفاوت عمده ای که دارن دقیقا تو همین بحثِ میزبانی از اون یکیه! به این صورت که تنها Activity میتونه از Fragment میزبانی کنه و بالعکس امکان پذیر نیست. به این صورت که Acitivity خودش میتونه به عنوان یک "اساس | زمینه" یا Context استفاده بشه اما Fragment حتما باید در یک Context دیگه قرار بگیره! که در جاوا با متد getContext میتونیم بهش دسترسی داشته باشیم.

از لحاظ LifeCycle و چرخه حیات هم نسبتا به هم شبیه هستن. عکس موجود در این آدرس رو نگاه کنید بهتر متوجه این قضیه میشید.  GitHub - xxv/android-lifecycle: A diagram of the Android Activity / Fragment lifecycle

اگه از Bottom Bar منظورتون BottomNavigationView هستش، در پیوست همین پست ببینید که با Fragment  به خوبی کار میکنه.

به طور کلی، عملی نیست که تو Fragment نشه انجام داد! نهایتا با کمی تغییر نسبت به Activity انجام شدنیِ.

میبینید یه اپلیکیشن فراگیر مثل Instagram شدیدا به Fragment ها متکی هستش و تقریبا تمام بخش هاش با Fragment پیاده سازی شده!

بیشتر از این سرتون رو درد نمیارم! این قصه سر دراز دارد...

موفق باشید.

GIF.gif

خیلی ممنون متوجه شدم

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

در ۱ ساعت قبل، Gray Mind گفته است :

ببین فرگمنت ها میشه گفت همون اکتیویتی هستن و همه ی کارایی که اکتیویتی ها میتونن انجام بدن رو انجام میدن

و اینکه فرگمنت هارو توی اکتیویتی میشه نشون داد اما اکتیویتی رو نمیشه توی فرگمنت نشون داد

در اصل بدون اکتیویتی و فریم لایوت فرگمنت رو نمیشه نشون داد

هرجا کدی که داخل اکتیویتی میزدین مشکل داشت کافیه اولش یه دونه getActivity() بذارید


getActivity()

----
getActivity().startActivity(new ...);

 

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

الان این مشکل رو چجوری حل کنم؟

4z6f_untitled22.png

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

@soroush80

درود،

شما کدهای توابع مربوط به رویدادهای onCreate و onCreateView رو در داخل Fragment به این شکل تغییر بدید: 

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_view_profile, container, false);
        profileImage = view.findViewById(R.id.Profile_image);
        // view definition
        //
        //
        //
        //
        return view;
    }

 

تعریف کنترل ها رو در قسمت onCreateView و به شکلی که نوشتم، در بخشی که مشخص کردم، انجام بدید. من چرخه حیات Fragment رو در پست بالاییم براتون گذاشتم که متوجه میشین چرا باید در این قسمت تعریف کنید!

موفق باشید.

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

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...