2016-05-06 8 views
1

Mein XML-Code ist:Wie überlagern Sie TextView auf Button?

<RelativeLayout 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="right"> 
<Button 
    android:id="@+id/btnMyDeals" 
    android:layout_width="wrap_content" 
    android:layout_height="32dp" 
    android:layout_gravity="right" 
    android:layout_marginRight="8dp" 
    android:text="DEALS" 
    android:textSize="18sp" 
    android:textColor="@color/white" 
    android:background="@drawable/rounded_deals_button" 
    android:layout_alignParentTop="true"/> 

<TextView 
    android:id="@+id/badge_notification_2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    android:background="@android:drawable/ic_notification_overlay" 
    android:text="23" 
    android:textColor="#FFF" 
    android:textSize="12sp" 
    android:textStyle="bold" /> 




</RelativeLayout> 

Ich mag TextView Blase, die ein Benachrichtigung Abzeichen ist die Button zu schweben. TextView kann über der oberen rechten oder linken oberen Ecke von Button schweben. Wie geht das?

+1

Verwenden Sie FrameLayout. – Amy

+0

wie? Kannst du eins machen? Ich werde diese Antwort akzeptieren – Ritzor

Antwort

0

Verwenden Sie android:layout_alignEnd zum Ausrichten oben rechts und android:layout_alignStart zum Ausrichten oben links. Sie können "place" von "start" und "right" anstelle von "end" für die untere apis setzen.

android:layout_alignEnd="@id/btnMyDeals"

ODER

android:layout_alignStart="@id/btnMyDeals"

setzen diese Zeilen für Ihre Textview

+0

funktioniert nicht für mich, Schaltfläche überlappt sich auf Textview. – Ritzor

+0

Keine Ahnung dann. Ich habe Ihr Layout auf meinem System mit 'android: layout_alignStart' getestet und es funktionierte für mich. Sie können auch 'android: layout_alignTop =" @ id/btnMyDeals "' mit der vorherigen Sache zu Ihrer Textansicht hinzufügen. –

1

Dieses Versuchen:

Verwenden FrameLayout statt.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" > 
    <FrameLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true"> 


     <Button 
      android:id="@+id/btnMyDeals" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="8dp" 
      android:text="DEALS" 
      android:textSize="18sp" 
      android:textColor="@color/white"/> 

     <TextView 
      android:id="@+id/badge_notification_2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@android:drawable/ic_notification_overlay" 
      android:text="23" 
      android:textColor="#FFF" 
      android:textSize="12sp" 
      android:textStyle="bold" 
      android:elevation="100dp" 
      /> 

    </FrameLayout> 

</RelativeLayout> 
+0

funktioniert nicht für mich, Schaltfläche überlappt sich in Textansicht. – Ritzor

+0

Lassen Sie mich überprüfen, ich werde Antwort aktualisieren – Amy

+0

@Ritzor haben Sie die Antwort versucht? – Amy

0

Sie benötigen android:layout_gravity="top|right" oder android:layout_gravity="top|left" zu Ihrem versuchen TextView

<FrameLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    > 

    <Button 
    android:id="@+id/btnMyDeals" 
    android:layout_width="wrap_content" 
    android:layout_height="32dp" 
    ... 
    /> 

    <TextView 
    android:id="@+id/badge_notification_2" 
    ... 
    android:layout_gravity="top|right" 
    /> 

</FrameLayout> 
+0

Ich kann halbe Textview sehen, aber Rest Hälfte ist überlagert mit Button, ich möchte Textansicht über die Schaltfläche schweben. Können Sie bitte den Code erneut überprüfen? – Ritzor

+0

@Ritzor jetzt die Hälfte der Textansicht schweben die Taste rechts? –

+0

ja? Tatsächlich überlappt diese Schaltfläche textview. Ich möchte umgekehrt – Ritzor

0

Bitte hinzufügen

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="right"> 

    <Button 
    android:id="@+id/btnMyDeals" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_gravity="right" 
    android:layout_marginRight="8dp" 
    android:text="DEALS" 
    android:textSize="18sp" /> 

    <TextView 
    android:id="@+id/badge_notification_2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@android:drawable/ic_notification_overlay" 
    android:text="23" 
    android:textColor="#FFF" 
    android:textSize="12sp" 
    android:textStyle="bold" 
    android:translationZ="5dp"/> 
</RelativeLayout> 
1

hey ich das gleiche Problem hatte leider, ich kann keinen logischen Grund, warum es sollte nicht wie erwartet funktionieren, es scheint wie ein Fehler.

Die einzige Art, wie ich es umgehen konnte, war der Text oben auf die Schaltfläche in der obersten Ebene Hierarchie

<FrameLayout> 
    <LinearLayout regular layout with button inside/> 
    <TextTiew for button overlay /> 
</FrameLayout> 

nicht hübsch, nicht effizient sein haben, aber funktioniert.

+0

Es ist kein Fehler, aber ein Material Design. Button und TextView haben unterschiedliche Ansichten –