2016-07-20 7 views
0

Ich bin ein wenig verwirrt, wie mehrere dimens.xml Dateien (nicht für verschiedene Bildschirmauflösungen und Größen, sondern von mehreren Bibliotheksmodulen) in AndroidStudio behandelt werden.Wie werden multiple dimens.xml Dateien aus mehreren Modulen verwendet?

Ich habe ein AndroidStudio-Projekt, das aus einem Hauptmodul (die ausführbare App) und mehreren Bibliotheksmodulen besteht, können wir sie module1 und module2 nennen.

Aus einer XML-Datei in meinem Haupt-Layout-Ordner des Moduls ich versuche, einen Wert in dimens.xml von module2 wie diese android:paddingBottom="@dimen/..." zum Beispiel gespeichert zugreifen zu können, aber ich kann nur dimens von module1 und das Hauptmodul selbst finden.

Meine Frage ist, wie kann ich auf die Dimenwerte vom Hauptmodul und von allen Bibliotheksmodulen zugreifen? Warum bekomme ich Vorschläge für die Werte der Hauptmodule und module1's, aber nicht für module2?

Ich würde mich über jede Klarstellung darüber freuen.

Antwort

1

Das Android Gradle-Plugin und Android Studio haben kürzlich eine Änderung vorgenommen, um das Konzept öffentlicher und privater Ressourcen in Bibliotheksprojekten zu unterstützen.

Dadurch können Bibliotheken ihre Ressourcen vor dem Konsum von Anwendungen verbergen, wodurch der Ressourcen-Namespace nicht verschmutzt wird und Benutzer daran gehindert werden, Ressourcen zu verwenden, die sich in zukünftigen Versionen der Bibliothek ändern könnten.

Standardmäßig sind alle Ressourcen in einem Bibliotheksprojekt privat.

Um eine Ressource öffentlich zu machen, eine neue res/values/public.xml Ressource-Datei erstellen und eine Definition in dieser Datei setzen wie so:

<resources> 
    <public name="libraryname_dimen" type="dimen"/> 
</resources> 

Dies ist eine Dimension Ressource namens libraryname_dimen" öffentlich und damit für andere Module verfügbar machen würde und/oder Anwendungen zu verwenden, wenn Sie das AAR veröffentlichen würden.

Sie können mehr unter der Private Resources tools documentation lesen.

1

Versuchen Sie, android:paddingBottom="?attr/..." zu verwenden, um auf solche Werte zuzugreifen.
Dies funktioniert auch für Farben.

Verwandte Themen