2016-04-14 1 views
2

Ich hatte ein Problem, das ist ich habe einige ViewGroup, die fast den gleichen Inhalt haben. wie folgt aus:Wie verwendet man Layouts mit <include/> mit Parametern erneut?

<LinearLayout> 
    <TextView android:text="aaa"/> 
    <ImageView android:src="bbb"/> 
</LinearLayout> 

<LinearLayout> 
    <TextView android:text="ccc"/> 
    <ImageView android:src="ddd"/> 
</LinearLayout> 

ich diese konvertieren möchten:

<include layout="xxLayout" 
    param1="aaa" 
    param2="bbb"/> 
<include layout="xxLayout" 
    param1="ccc" 
    param2="ddd"/> 


xxLayout.xml 
<LinearLayout> 
    <TextView android:text="{param1}"/> 
    <ImageView android:src="{param2}"/> 
</LinearLayout> 

Ich weiß, dass ich es Java verwenden tun können code.Could es möglich sein, dass nur xml benutzen?

Antwort

0

Sie können eine benutzerdefinierte Ansichtsgruppe mit dem Attribut param1, param2 verwenden. include entspricht nicht Ihrer Nachfrage

+0

Ich wusste es. das ist die Sache, die ich nicht will. Ich dachte darüber nach, dass es einen Weg ohne Java Code geben muss. Aber es ist nicht. –

+0

include unterstützt keine benutzerdefinierten Parameter – chefish

1

können Sie verwenden diese

  <include 
      android:id="@+id/banner" 
      layout="@layout/login_banner" /> 

Banner die ID des Tags enthalten sind und login_banner ist das unterschiedliche Layout, das Sie in Ihrem XML aufzublasen wollen

+0

Keine Antwort., – Apurva

+0

@Apurva Haben Sie nicht bekommen? –

+0

Was ich von der Frage verstanden habe, ist, dass OP auch benutzerdefinierte (oder nicht benutzerdefinierte) Attribute "param1", "param2" zum enthaltenen Layout hinzufügen möchte. Du zeigst das nicht in deiner Antwort. – Apurva

1

Verwendung wie diese

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <include 
      android:id="@+id/vgroup1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      layout="@layout/viewgrup1"" /> 

    <include 
       android:id="@+id/vgroup2" 
       layout="@layout/viewgrup2"" /> 
</LinearLayout> 
+0

Nein ... Es hat nicht nur verschiedene "android: id", es hat auch einige andere params wie "android: src", "android: text". –

+0

check this [link] (http://stackoverflow.com/questions/2631614/does-android-xml-layouts-include-tag-really-work) – Rgv

+0

Es ist eine gute Idee, aber ist nicht nützlich –

Verwandte Themen