نمایش نتایج 1 تا 4 از 4

نام تاپیک: تاخیر در بارگذاری آبجکت های اکتیویتی

  1. #1

    تاخیر در بارگذاری آبجکت های اکتیویتی

    سلام دوستان
    من ی اکتیویتی دارم که توش تعداد 120 تا 130 تا آبجکت گذاشتم(EditText,TextView,Spinner,TableLayout , ...)
    وقتی میخوام این اکتیویتی رو باز کنم قدری زمان میبره تا فرم آماره استفاده بشه، یا مخصوصا وقتی کیبور باز میشه و دوباره میخوای ببندی محددا زمان میبره تا فرم آماده اسفاده بشه
    ی راه کاری یا روشی که بتوان در وحله اول همه آبجکت ها لود نشه(مثلا 30 لود بشه) بعد تعداد بعدی و الی اخر
    لطفا راهنمای

  2. #2

    نقل قول: تاخیر در بارگذاری آبجکت های اکتیویتی

    نقل قول نوشته شده توسط nimaaamin مشاهده تاپیک
    سلام دوستان
    من ی اکتیویتی دارم که توش تعداد 120 تا 130 تا آبجکت گذاشتم(EditText,TextView,Spinner,TableLayout , ...)
    وقتی میخوام این اکتیویتی رو باز کنم قدری زمان میبره تا فرم آماره استفاده بشه، یا مخصوصا وقتی کیبور باز میشه و دوباره میخوای ببندی محددا زمان میبره تا فرم آماده اسفاده بشه
    ی راه کاری یا روشی که بتوان در وحله اول همه آبجکت ها لود نشه(مثلا 30 لود بشه) بعد تعداد بعدی و الی اخر
    لطفا راهنمای
    اگر همه این آبجکتها را درون یک لایه قرار داده باشید وقتی تو اکتیویتی این لایه را لود کنید همه ویجت ها را بارگذاری میکنه ! البته این کارهم که اصلا درست نیست و performance اکتیویتی بشدت پایین میاد.
    میتونید از ویجتهای لیستی هست مثل recycler view که می تونید ویجت ها را با اولویت نمایش بدید و تکنیک های lazy loading هم استفاده کنید البته باید شرایط استفاده از این ویجت را هم داشته باشید
    اگر تمام این ویجت ها به هم مرتبط هستند و از ویجتهای مختلف استفاده کرده باشید قاعدتا نمی تونید از این لیست ها استفاده کنید. یا بهتر بگم فرض کنید که یک فرم دارید که توی اون 30 تا تکست باکس دارید که باید اطلاعاتش را ذخیره کنید خوب بالطبع بهترین کا استفاده از یک لیست هست تا اینکه بخواهید همه این 30تا تکست ویو را تو یک لایه نمایش بدید پس نتیجه این که اگر همه ویجت ها یکسان هستند تکنیک خوبی هست در غیر اینصورت خیر.
    به هر حال برای طراحی لایه ای که اینهمه ویجت داشته باشه بهتر هست که به چندین بخش تقسیم کنید و هر یک از بخشها را جداگانه نمایش بدید و در زمان نمایش هم لود کنید تا سربار هم کمتر بشه وگرنه همونطوری که عرض کردم از نظر تکنیکی هم کار درستی نیست اینهمه ویجت را بر روی یک اکتیویتی نمایش بدید! تا اونجاهم که یادم هست خود اندروید استودیو بهتون هشدار میده که تعداد ویجت ها خیلی زیاد هست فکر کنم سقف ویجت هایی که تو یک لایه میتونید نمایش بدید 80 بود.

  3. #3

    نقل قول: تاخیر در بارگذاری آبجکت های اکتیویتی

    ممنونم از وقتی که گذاشتین
    یک فرم آماربرداری که باید چیزی حدود 100 تا 120 آیم از کاربر پرسیده بشه و وارد بشه از spinner گرفته تا edittext
    چیزی از fregment میدونید میتونه توی این مسئله کمکم کنه(من چیز زیادی ازش نمیدونم)

  4. #4

    نقل قول: تاخیر در بارگذاری آبجکت های اکتیویتی

    نقل قول نوشته شده توسط nimaaamin مشاهده تاپیک
    ممنونم از وقتی که گذاشتین
    یک فرم آماربرداری که باید چیزی حدود 100 تا 120 آیم از کاربر پرسیده بشه و وارد بشه از spinner گرفته تا edittext
    چیزی از fregment میدونید میتونه توی این مسئله کمکم کنه(من چیز زیادی ازش نمیدونم)
    دوست عزیز !
    فرگمنت ها در حقیقت یک کلاس پوشاننده برای اکتیویتی هستند که برخی مشکلات اکتیویتی را پوشش میدن !
    البته اگر بخواهید از تکنیکی که خدمتتون عرض کردم استفاده کنید و یک اکتیویتی را به بخش های مختلف تقسیم کنید هم می تونید از فرگمنت ها استفاده کنید!
    1- تعریف یک لایه اصلی در اکتیویتی که شامل یک view pager به عنوان root element باشه !
    2- تعریف هر لایه جدا برای هر فرگمنت که هر لایه میتونه تا 10 - 15 ویجت را در خودش داشته باشه!
    3- تعریف یک کلاس fragmentManager با ارث بری از fragmentAdapter
    4- در زمان لود اکتیویتی نمایش اولین فرگمنت که می تونید به دورش انجام بدید با استفاده fragmentSupportManager و fragmentTransaction و اضافه کردن داینامیک فرگمنت در زمان اجرا به سویچر و اکتیویتی و روش دوم هم می تونید یک کلاس که از fragmentAdapter ارث بری کرده باشه بسازید و فرگمنتها را براساس نام و اولویت در این کلاس کپسوله کنید و عملیات اضافه کردن و حذف کردن فرگمنت ها به سویچر را به کلاس parent بسپارید.
    عملیات اضافه کردن فرگمنت ها را می تونید درضمن تغییر page ها مدیریت کنید هم سرعت خوبی خواهید داشت هم اصول شی گرائی را هم رعایت کردید به طوریکه برای اینکه در آینده بخواهید هر ویجتی اضافه کنید ویا تغییری بدید به راحتی این کار انجام میشه و نیازی به تغییرات زیادی نخواهید داشت. و همچنین لایه های رابط کاربری هم که ایجاد میکنید به هم وابسته نخواهند بود و در هر لایه به راحتی میتونید تغییر ایجاد کنید بدون نگرانی از تست های رگرسیون.

تاپیک های مشابه

  1. مشكل در بارگذاري فايل هاي dll روي سرور 2003
    نوشته شده توسط mehran20092008 در بخش شبکه و Networking‌
    پاسخ: 1
    آخرین پست: یک شنبه 23 خرداد 1389, 09:33 صبح
  2. ایجاد تاخیر در دریافت داده های اینترنتی
    نوشته شده توسط mamizadeh در بخش برنامه نویسی در Delphi
    پاسخ: 7
    آخرین پست: پنج شنبه 24 اسفند 1385, 20:52 عصر
  3. ایجاد تاخیر در دریافت داده های اینترنتی
    نوشته شده توسط mamizadeh در بخش C#‎‎
    پاسخ: 3
    آخرین پست: چهارشنبه 23 اسفند 1385, 19:42 عصر
  4. آبجکت های موجود در یک فیلد template
    نوشته شده توسط prince-of-persia در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: سه شنبه 23 خرداد 1385, 13:52 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •