Überschreiben Sie das Hintergrundattribut des Incluments, um die Hintergrundfarbe zu ändern

Android Studio 1.5 

Ich habe dieses Layout namens chat_profile_header , das in vielen Layouts verwendet wird. Ich habe den background auf eine Indigo-Farbe gesetzt. Das Problem ist, wenn ich diesen Header in andere Layouts einbeziehe, möchte ich in der Lage sein, die Hintergrundfarbe zu ändern, die auf dem Design dieses Layouts basiert. Alles in der Kopfzeile bleibt gleich.

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="60dp" android:background="@color/profile_header_indigo_500"> <de.hdodenhof.circleimageview.CircleImageView android:id="@+id/profile_image" android:layout_width="40dp" android:layout_height="40dp" android:src="@drawable/photorace" android:layout_centerVertical="true"/> <TextView android:id="@+id/tvProfileName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/profile_image" android:layout_toEndOf="@id/profile_image" android:layout_centerVertical="true" android:layout_marginLeft="8dp" android:fontFamily="sans-serif" android:textColor="@android:color/white"/> </RelativeLayout> 

Hier verwende ich den obigen Header in diesem Layout. Allerdings möchte ich auf der Grundlage dieses Themas den Header auf eine andere background grau ändern. Allerdings denke ich nicht, dass ich das Hintergrundfarbenattribut überschreiben kann.

  • Bluetooth-Aktivierung Alert-Dialog-Multiplikation nach der Bildschirmrotation
  • HTTP-Anfrage für XML-Datei
  • Wie zu erkennen, ob Android-Gerät ist mit Androide tragen Uhr gepaart
  • Android - ImageView: setImageBitmap VS setImageDrawable
  • OverridePendingTransition auf Gridview-Adapter
  • Keine Ressource-ID für App gefunden: layout_scrollflags von CollapsingToolbarLayout
  •  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white"> <include layout="@layout/chat_profile_header" android:background="@color/child_header_lighter_grey"/> <android.support.v7.widget.RecyclerView android:id="@+id/rvParentList" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v7.widget.RecyclerView> </LinearLayout> 

    Gibt es eine Möglichkeit, dies zu tun, ohne unterschiedliche Header-Layouts basierend auf Hintergrund zu erstellen. Scheint eine Menge Duplikation.

  • Android EditText AutoFocus zum nächsten EditText wenn bei maxlength
  • So ändern Sie TextView Text auf DataChange ohne Rückruf TextWatcher Listener
  • 3D Karten Bibliothek für Android
  • Verknüpfung bestimmter Dateierweiterung zu meiner Android-Anwendung
  • Wie bekomme ich Gerät (AOSP) Build-Nummer in Android-Geräten programmgesteuert?
  • ButtonDown- und ButtonUp-Events für Android-Bildschirmtasten?
  • 4 Solutions collect form web for “Überschreiben Sie das Hintergrundattribut des Incluments, um die Hintergrundfarbe zu ändern”

    Das scheint nicht möglich zu sein Sie können Hintergrund von Java setzen.

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white"> <include android:id="@+id/layout1" layout="@layout/chat_profile_header"/> <include android:id="@+id/layout2" layout="@layout/chat_profile_header"/> <android.support.v7.widget.RecyclerView android:id="@+id/rvParentList" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v7.widget.RecyclerView> </LinearLayout> 

    Dieser Java-Code

     Linealayout layout1 = (Linealayout)findViewbyId(R.id.layout1); Linealayout layout2 = (Linealayout)findViewbyId(R.id.layout2); layout1.setBackgroundColor(R.color.color_1); layout2.setBackgroundColor(R.color.color_2); 

    Sie können immer Ihre Hintergrundfarbe mit Layout-Thema, das Sie angegeben haben. Einfach die

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/colorPrimary"> </LinearLayout> 

    Setzen Sie dann die colorPrimary unter Ihren Themenstil-Dateien. Warnung: Wenn Sie die Farbe primär einstellen, ändern Sie auch die Farbe der Aktionsleiste.

     <style name="MyCustomTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@android:color/blue</item> </style> 

    Mit dieser Methode wird Ihr Hintergrund immer die gleiche sein wie die Farbe, die Sie unter dem Themenstil angegeben haben. Nur für den Fall, Sie wissen nicht, wie man das Thema für Sie Aktivität, können Sie immer in Ihrem AndroidManifest.xml

     <activity android:name=".Activity" android:theme="@style/MyCustomTheme" /> 

    Sie können die Hintergrundfarbe nicht auf < include > -Tag setzen.

    Wie Sie die Hintergrundfarbe des Include-Tags setzen, wird es mit der Hintergrundfarbe des Include Layouts verwechselt.

    Also aus meiner Sicht solltest du dein Inserat Layout transparent machen und dann versuchen, Hintergrundfarbe davon zu setzen.

    In diesem Fall wird es nicht mit der Farbe des Include Layouts verwechselt.

    Hoffe, es wird Ihnen helfen, eine Idee darüber zu bekommen.

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:id="@+id/rl_profile_header" android:layout_height="60dp" android:background="@color/profile_header_indigo_500"> <de.hdodenhof.circleimageview.CircleImageView android:id="@+id/profile_image" android:layout_width="40dp" android:layout_height="40dp" android:src="@drawable/photorace" android:layout_centerVertical="true"/> <TextView android:id="@+id/tvProfileName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/profile_image" android:layout_toEndOf="@id/profile_image" android:layout_centerVertical="true" android:layout_marginLeft="8dp" android:fontFamily="sans-serif" android:textColor="@android:color/white"/> 

    Zuordnen Sie id zu Ihrem RelativeLayout android: id = "@ + id / rl_profile_header" dann Initialisieren Sie es, wo Sie wie RelativeLayout rl=(RelativeLayout)findViewById(R.id.rl_profile_header) möchten, dann setColor, wie Sie mit rl.setBackgroundColor(R.color.red)

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.