من المفترض أن يكون Proteus بديلاً مباشرًا لنظام Android LayoutInflater
؛ ولكن على عكس تخطيطات XML المترجمة المجمعة في APK، يعمل Proteus على تضخيم التخطيطات في وقت التشغيل. باستخدام Proteus، يمكنك التحكم في تخطيط تطبيقاتك من الواجهة الخلفية (بدون WebViews). انسَ الكود المعياري للعثور على findViewById
، ثم أرسله إلى TextView
، ثم setText()
. يحتوي Proteus على روابط ومنسقات بيانات وقت التشغيل. قم بإضافة طرق العرض والسمات والوظائف المخصصة الخاصة بك لإضفاء نكهة بروتينية على متطلباتك.
// Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
google ( )
jcenter ( )
maven { url 'https://jitpack.io' }
}
}
// Add in your app level dependency
dependencies {
implementation 'com.github.flipkart-incubator.proteus:proteus-core:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:gson-adapter:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:cardview-v7:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:design:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:recyclerview-v7:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:support-v4:5.0.1'
}
بدلاً من كتابة التخطيطات بتنسيق XML
، يتم وصف التخطيطات المتقلبة بتنسيق JSON
، والتي يمكن استخدامها لتضخيم واجهة مستخدم Android الأصلية في وقت التشغيل. يمكن استضافة تخطيطات JSON
في أي مكان (على الجهاز، على الخوادم، وما إلى ذلك).
يحدد التخطيط التسلسل الهرمي للعرض، تمامًا مثل XML.
تحدد البيانات (اختياري) ربط البيانات. تشبه روابط البيانات هذه مكتبة ربط البيانات في Android.
قم بإعطاء layout
data
إلى ProteusLayoutInflater
واسترجع التسلسل الهرمي للعرض الأصلي.
شاهد هذا الفيديو لمشاهدته أثناء العمل.
{
"type" : "LinearLayout" ,
"orientation" : "vertical" ,
"padding" : "16dp" ,
"children" : [ {
"layout_width" : "200dp" ,
"gravity" : "center" ,
"type" : "TextView" ,
"text" : "@{user.profile.name}"
} , {
"type" : "HorizontalProgressBar" ,
"layout_width" : "200dp" ,
"layout_marginTop" : "8dp" ,
"max" : 6000 ,
"progress" : "@{user.profile.experience}"
} ]
}
{
"user" : {
"profile" : {
"name" : "John Doe" ,
"experience" : 4192
}
}
}
ProteusView view = proteusLayoutInflater . inflate (< layout >, < data >);
container . addView ( view . getAsView ());
سيتيح لك التطبيق التجريبي اللعب باستخدام proteus بالإضافة إلى مساعدتك على فهم الأجزاء الداخلية بشكل أفضل.
npm start
على استعداد للعبث
أسهل طريقة للمساهمة هي عن طريق تفرع الريبو وإجراء التغييرات وإنشاء طلب سحب.
أباتشي v2.0
إذا كنت تستخدم proteus، فافحص العلبة، ولا يمكن، ويجب
يمكنك التحقق من المساهمين هنا، ولكن إذا كنت ترغب في الاتصال بنا؛ مجرد إسقاط في البريد.
تابعنا على StackOverflow في proteus.
قم بتنزيل هذا البرنامج المساعد (في النسخة التجريبية) لنظام Android Studio. بمجرد التمكين، يمكنك تحديد أي ملف مورد Android XML والانتقال إلى Tools > Proteus > Convert XML to JSON