Proteus soll ein direkter Ersatz für Androids LayoutInflater
sein; aber im Gegensatz zu den kompilierten XML-Layouts, die im APK gebündelt sind, bläht Proteus Layouts zur Laufzeit auf. Mit Proteus können Sie Ihr Apps-Layout vom Backend aus steuern (keine WebViews). Vergessen Sie den Boilerplate-Code für findViewById
, wandeln Sie ihn in eine TextView
um und setzen Sie dann setText()
. Proteus verfügt über Laufzeitdatenbindungen und Formatierer. Fügen Sie Ihre eigenen benutzerdefinierten Ansichten sowie Attribute und Funktionen hinzu, um Proteus an Ihre Anforderungen anzupassen.
// 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'
}
Anstatt Layouts in XML
zu schreiben, werden in Proteus Layouts in JSON
beschrieben, die zur Erweiterung der nativen Android-Benutzeroberfläche zur Laufzeit verwendet werden können. Die JSON
Layouts können überall gehostet werden (auf dem Gerät, auf Servern usw.).
Das Layout definiert die Ansichtshierarchie, genau wie XML.
Die Daten (optional) definieren Datenbindungen. Diese Datenbindungen ähneln der Datenbindungsbibliothek von Android.
Übergeben Sie das layout
und data
an ProteusLayoutInflater
und erhalten Sie eine native Ansichtshierarchie zurück.
Sehen Sie sich dieses Video an, um es in Aktion zu sehen.
{
"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 ());
Mit der Demo-App können Sie mit Proteus herumspielen und die Funktionsweise besser verstehen.
npm start
Bereit zum Basteln
Der einfachste Weg, einen Beitrag zu leisten, besteht darin, das Repo zu forken, Ihre Änderungen vorzunehmen und eine Pull-Anfrage zu erstellen.
Apache v2.0
Wenn Sie Proteus verwenden, schauen Sie sich die Dose, Dose und Notwendigkeit an
Sie können sich die Mitwirkenden hier ansehen, aber wenn Sie uns kontaktieren möchten; schreib einfach eine Mail.
Finden Sie uns auf StackOverflow unter proteus.
Laden Sie dieses Plugin (in der Betaversion) für Android Studio herunter. Nach der Aktivierung können Sie eine beliebige Android-XML-Ressourcendatei auswählen und zu Extras > Proteus > XML in JSON konvertieren gehen