2016-08-02 4 views
0
einschließlich

Lassen Sie uns sagen, ich habe my_custom_view.xmlWie Layout params der Kinder Layouts außer Kraft zu setzen, wenn

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"> 
    <TextView android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="@string/hello" 
       android:padding="10dp" /> 

    ........ 
</LinearLayout> 

Und ich will my_custom_view auf meinem activity_main.xml mehrfach erweitert.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"> 

    <include layout="@layout/my_custom_view.xml"/> 
    <include layout="@layout/my_custom_view.xml"/> 
    <include layout="@layout/my_custom_view"/> 
</LinearLayout> 

Aber was, wenn ich nur Text überschrieben werden soll (Textview) auf jeder my_custom_view Ansichten.

, d. H. Wie kann ich einen Parameter eines untergeordneten Elements des übergeordneten Elements my_custom_view.xml überschreiben, wenn es mit <include/> Tags verwendet wird?

Ich weiß, ich könnte eine benutzerdefinierte Ansichtsklasse mit Attributen erstellen, aber ich möchte, dass meine Ansichten direkt in Android Studios Design-Ansicht gerendert werden.

Antwort

0

Sie können nicht wirklich komplexe Logik wie diese in XML.

Benutzerdefinierte Ansichten werden wie jede andere Ansicht gerendert (einfach das Projekt nach dem Erstellen der Klasse neu erstellen). Sie geben Ihnen auch viel mehr Flexibilität mit attrs.xml, wie Sie bereits wissen