2010-11-25 8 views
0

Ich versuche, admob ad an der Spitze meiner app setzen, aber der normale Text muss in der Mitte zentriert bleiben ... mit dem folgenden Code nur einer von die Komponenten werden angezeigt ..android xml legte Komponente an der Spitze mit layout_gravity = "center"

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:myapp="http://schemas.android.com/apk/res/test.testpkg" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_gravity="center" 
    android:gravity="center" 
    android:background="@drawable/background" 
    android:padding = "10dip" > 

    <com.admob.android.ads.AdView 
     android:id="@+id/ad" 
     android:gravity="center" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     myapp:backgroundColor="#000000" 
     myapp:primaryTextColor="#FFFFFF" 
     myapp:secondaryTextColor="#CCCCCC" /> 

    <test.testpkg.CustomTextView android:id="@+id/landscapeText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor = "#000" 
     android:textSize="40sp" 
     android:shadowColor="#FFF" 
     android:shadowDx="1.2" 
     android:shadowDy="1.2" 
     android:shadowRadius="1.2" 
     android:gravity="center_vertical" 
     android:text ="Test" /> 
</LinearLayout> 

Antwort

1

Linearlayout hat ein zusätzliches Attribut android: Orientierung (doc). der Standardwert ist „horizontal“, aber man braucht „vertikal“, weil im Moment die CustomTextView rechts neben der AdView gerendert wird und außerhalb des Bildschirms.

Zusätzlicher Hinweis: Wenn Sie Ihre CustomTextView wirklich in der Mitte des Bildschirms möchten, sollten Sie RelativeLayout anstelle von LinearLayout verwenden und das Attribut hinzufügen android: layout_centerInParent = "true" -> wird in der Mitte angezeigt.