Ich versuche, eine benutzerdefinierte Ansicht mit einem Attribut mit dem Namen borderWidth
zu machen. Wenn ich versuche, meine App zu laufen bekomme ich den Fehler:Android-Attribut wurde bereits definiert
E:\Android Studio Projects\MyApp\app\build\intermediates\res\merged\debug\values\values.xml Error:(341) Attribute "borderWidth" has already been defined
In der values.xml
-Datei, die er zeigt, kann ich sehen, dass borderWidth
bereits FloatingActionButton
für den Standard verwendet wird, und ein paar anderen Standard-Android-Widgets:
<style name="Widget.Design.FloatingActionButton" parent="android:Widget">
<item name="android:background">@drawable/design_fab_background</item>
<item name="backgroundTint">?attr/colorAccent</item>
<item name="fabSize">auto</item>
<item name="elevation">@dimen/design_fab_elevation</item>
<item name="pressedTranslationZ">@dimen/design_fab_translation_z_pressed</item>
<item name="rippleColor">?attr/colorControlHighlight</item>
<item name="borderWidth">@dimen/design_fab_border_width</item>
</style>
Kann ich diesen Namen für meine Ansicht wiederverwenden oder muss ich ihn umbenennen?
bearbeiten
Dies ist die gesamte attrs.xml
Datei:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--<attr name="borderWidth" format="float" />-->
<declare-styleable name="ScrollingLineGraph">
<attr name="unitsX" format="float" />
<attr name="unitsY" format="float" />
<attr name="scaleY" format="float" />
<attr name="scaleX" format="float" />
<!--<attr name="borderWidth" format="float" />-->
<attr name="scaleWidth" format="float" />
<attr name="borderColor" format="color" />
<attr name="scaleColor" format="color" />
<attr name="lineColor" format="color" />
<attr name="highlightColor" format="color" />
<attr name="labelColor" format="color" />
<attr name="labelSize" format="float" />
</declare-styleable>
</resources>
Dies ist die Layout-Datei, in meiner benutzerdefinierten Ansicht verwendet wird:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout android:id="@+id/coordinatorLayout_main"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp"
android:orientation="vertical">
<!-- Other views -->
<com.tycho.app.simplegraphs.ui.ScrollingLineGraph
android:id="@+id/graph1"
custom:unitsX="10000"
android:layout_width="200dp"
android:layout_height="40dp"/>
<com.tycho.app.simplegraphs.ui.ScrollingLineGraph
android:id="@+id/graph2"
android:layout_marginTop="4dp"
custom:lineColor="#FF0000"
custom:unitsX="10000"
custom:highlightColor="#80FF0000"
android:layout_width="200dp"
android:layout_height="40dp"/>
<!-- Other views -->
</LinearLayout>
Ich habe versucht, aber es gibt den folgenden Fehler: Fehler: gefunden Artikel Attr/borderWidth mehr als einmal – TychoTheTaco
Sie können einen benutzerdefinierten Namespace verwenden. Hier klicken https://developer.android.com/training/custom-views/create-view.html#customattr. Haben Sie Ihre benutzerdefinierten Attribute in eine Datei namens attrs.xml aufgenommen? – Flood2d
Ich habe bereits den Namensraum wie folgt eingerichtet: 'xmlns: custom =" http://schemas.android.com/apk/res-auto "' aber der Fehler ist immer noch da. – TychoTheTaco