![]() |
|
LogIn App: AppCompat #8 - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم برمجة الهواتف (http://vb4arb.com/vb/forumdisplay.php?fid=208) +--- قسم : قسم مقالات Xamarin.Android (http://vb4arb.com/vb/forumdisplay.php?fid=209) +--- الموضوع : LogIn App: AppCompat #8 (/showthread.php?tid=23167) |
LogIn App: AppCompat #8 - Sajad - 01-01-18 بسم الله الرحمن الرحيم
(رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي)
السلام عليكم ورحمة الله وبركاته
باذن الله سنتحدث في هذا الدرس عن دعم الاصدارات القديمة بالنسبة لـMaterial Theme عن طريق استخدام AppCompat.
AppCompat: مكتبة من Google لدعم الاصدارات الاقدم من اصدارات Android حيث تقوم شركة Google باضافة ميزات في الاصدرات الحديثة ولذلك عند استخدامك لمكتة AppCompat ستتمكن من استخدام هذه الميزات لتدعم الاصدارات القديمة ايضا ( أقل من API 21 ).
كما ذكرنا في درس سابق (Material Theme) عن كيفية استخدام Material Design في تطبيق الاندرويد و وضحنا بأنه يدعم الاصدارات الاحدث بدءاً من اصدار Android Lollipop API 21 الى الاصدارات الحديثة وآخرها Android Oreo.
الخطوة الاولى:
طيب لدعم الاصدارات الأقدم من Android Lollipop نحتاج الى اضافة مكتبة AppComapt من NuGet Package بالشكل التالي:
Solution Explorer-->TestAndroidApp-->RightClick--> Manage NuGet Packages-->Browse
ثم اكتب في خانة البحث: Xamarin.Android.Support.v7.AppCompat
وقم باضافتها الى المشروع.
الخطوة الثانية:
افتح ملف Styles من مجلد values وقم باستبدال الكود السابق الموجود بالكود أدناه وأكتشف الفرق بنفسك:
PHP كود : <?xml version="1.0" encoding="utf-8" ?>ولا تنسى أن تغير Minimum Android version الى Android 4.2 API Level 17. الان انتقل الى Main.axml وقم بتطبيق الخطوات التالية:
قم باضافة هذا السطر داخل LinearLayout:
PHP كود : xmlns:app="http://schemas.android.com/apk/res-auto" ثم قم باضافة Toolbar بعد LinearLayout مباشرة : PHP كود : <android.support.v7.widget.Toolbarالخطوة الثالثة: انتقل الى MainActivity.cs وقم بتطبيق الخطوات التالي:
استبدل Activity في هذا السطر :
PHP كود : public class MainActivity : Activity بــ AppCompatActivity بهذا الشكل: (استخدم هذه المكتبة using Android.Support.V7.App;
) PHP كود : public class MainActivity : AppCompatActivity قم بتعريف متغير بهذا الشكل:
PHP كود : V7Toolbar _mainToolbar; ولإظهار الألوان في الـstatus bar والـ navigation bar نستخدم الكود التالي قبل سطر الـ SetContentView:
PHP كود : if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)حيث ستكون الدالة OnCreate في MainActivity.cs كالتالي:
PHP كود : protected override void OnCreate(Bundle savedInstanceState)والمكتبات المستخدمة ستكون كالتالي: PHP كود : using Android.App;وعند تنفيذ التطبيق ستكون الواجهة بهذا الشكل: والحمد لله رب العالمين
RE: LogIn App: AppCompat #8 - حريف برمجة - 01-01-18 مشكور اخوي ،، وجزاك الله خير اللي فهمته اذا كان النظام قديم سوف يظهر التطبيق بصورة غير إذا كان النظام جديد ؟ وعند استخدام الطريقة هذي سوف يظهر التطبيق بصورة واحدة في جميع الأنظمة والأجهزة ... هل هذا صحيح ؟ RE: LogIn App: AppCompat #8 - Sajad - 02-01-18 حياك الله اخي العزيز ليس هذا فقط اصلا تطبيقك سوف لن يعمل على الانظمة القديمة اذا لم تستخدم AppCompat بسبب أنه المزايا الجديدة فقط للاصدارات الاحدث لذا لكي يعمل تطبيقك بشكل سليم اذا كنت تفكر بدعم الاجهزة التي تعمل على اصدرات اقدم لا بد واستخدام مكتبات توفر هذه المزايا للاصدارات الاقدم فمن خلال المكتبات سوف تتمكن من استخدام مزايا الاصدارات الاحدث بالاصدارات الاقدم. تحياتي لكم RE: LogIn App: AppCompat #8 - حريف برمجة - 02-01-18 (02-01-18, 08:58 PM)Sajad كتب : حياك الله اخي العزيز مشكور وجزاك الله خير اخوي سجاد ،، طيب لو عملت المنيميم تارقيت 4.0.2 للأندرويد هل احتاج هذي المكتبة ؟ والسوال الثاني من اي اصدار من الاصدارات الاقدم احتاج لهذي المكتبة ؟ RE: LogIn App: AppCompat #8 - Sajad - 03-01-18 ما فيه أي مشكلة هذه المكتبة تدعم من API Level 7 تحياتي لكم RE: LogIn App: AppCompat #8 - حريف برمجة - 04-01-18 (03-01-18, 10:51 PM)Sajad كتب : ما فيه أي مشكلة تدعم فقط API Level 7 والإصدارات اللي قبل أو بعد 7 وماجاوبتني على سوالي : هل لو اعمل المنيميم تارقيت لإصدار اندرويد 4.0.2 احتاج لهذه المكتبة أو سيعمل تطبيق على جميع الأجهزة التي تحمل اصدار اندرويد 4.0.2 وأعلى كما صممتها بدون مشاكل ؟ RE: LogIn App: AppCompat #8 - Sajad - 04-01-18 كلا اخي العزيز من API 7 فالأحدث. نعم ستحتاج الى هذه المكتبة لكي تدعم الاصدارات من API 7 الى اخر اصدار API. RE: LogIn App: AppCompat #8 - حريف برمجة - 04-01-18 (04-01-18, 10:01 PM)Sajad كتب : كلا اخي العزيز من API 7 فالأحدث. مره أخرى مشكور اخوي . |