2012-06-18 28 views
7

Ich versuche, eine textView zu einer frameLayout hinzuzufügen. Die TextView hat wrap_content Eigenschaften, so dass es wächst, wenn der Text wächst. Ich füge es zu einem FrameLayout mit dieser Funktion:Hinzufügen einer Textansicht zu einer FrameLayout in einer bestimmten Position

((FrameLayout) findViewById(R.id.mainLayout)).addView(mEditText); 

Dies ist die xml des Frame-Layouts:

<FrameLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/mainLayout" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</FrameLayout> 

Die Textview erscheint immer in der linken oberen Ecke des Bildschirms . Ich möchte es in der Mitte oder oben Mitte positionieren. Wie kann das gemacht werden?
Ich schaute über die Antworten in How can I dynamically set the position of view in Android? und sie waren nicht viel Hilfe :(Vor allem Abstürze verursacht ..

Antwort

15

die Sie interessieren.

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, Gravity.CENTER); 

((FrameLayout) findViewById(R.id.mainLayout)).addView(mEditText, params); 

ändern Gravity Ihren Bedarf anpassen

BTW, das Rahmenlayout sollte fill_parent für Breite und Höhe verwenden

+0

Danke, das ist das einzige, was funktioniert hat !! Ändern des Frame-Layouts in fill_parent ruins Zeug für mich, es zeigt nicht die Ansichten, die unter dieser Ansicht sind. –

+0

anstelle von fill_parent besser zu verwenden match_parent. – drdrej

+0

Sie können auch 'LayoutParams.WRAP_CONTENT' für' width' -Eigenschaft verwenden, falls Ihre Textansicht einen kleinen Text enthält. –

0

Versuchen Sie Schwerkraft oder Layout Gravity zu Ihrem Framelayout oder der Textansicht.Es macht Ihr Layout zum Zentrum der Bildschirm. Verwenden Sie wie diese,

android:layout_gravity="center" 

oder

android:gravity="center" 
+1

hilft nicht, er muss dynamisch einfügen – xandy

0

Sie können es versuchen, setzen die Schwere des Textes verwenden Sie es wie-

textview.setGravity(Gravity.center); 

othervise von xml Satz Schwerkraft zum Zentrum, so wird es Anzeige Sie in der Mitte und wenn Sie centerinparents verwenden, so wird es immer in der Mitte des Bildschirms erscheint.

+0

Funktioniert nicht. Die Ansicht erscheint immer noch oben links, aber der Cursor ist jetzt in der Mitte der Ansicht –

0

Set FrameLayout Eigenschaften android:layout_width und android:layout_height zu fill_parent und setzen auch TextView Eigenschaft LayoutGravity. wie Center, Right oder Top.

Dank

0

android:layout_gravity="center" in Ihrem Frame-Layout hinzufügen

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mainLayout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" > 
</FrameLayout> 
+0

hat nichts geändert .. :( –

0

die Schwere Einstellung programmatisch auf jeden Fall funktioniert Bitte stellen Sie die layout_gravity nach rechts in der xml TextView.setGravity (Gravity.RIGHT);

Verwandte Themen