2012-06-18 13 views
7

Sto tentando di aggiungere uno textView a frameLayout. Lo TextView ha le proprietà wrap_content, quindi cresce quando il testo cresce. Sto aggiungendo ad un FrameLayout con questa funzione:Aggiungere una vista testo a un FrameLayout in una determinata posizione

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

Questo è il xml del layout telaio:

<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> 

TextView appare sempre nell'angolo in alto a sinistra dello schermo . Mi piacerebbe posizionarlo al centro o al centro. Come si può fare?
Ho guardato oltre le risposte in How can I dynamically set the position of view in Android? e non erano molto aiuto :(crash causato principalmente ..

risposta

15

Prova questa:.

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

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

Change Gravity in base alle proprie necessità

BTW, la struttura della cornice deve usare fill_parent per la larghezza e l'altezza

+0

Grazie, questa è l'unica cosa che ha funzionato !! Cambiando il layout della cornice in fill_parent per me, non mostra le viste che si trovano sotto questa vista. –

+0

invece di fill_parent è meglio usare match_parent. – drdrej

+0

Puoi anche usare 'LayoutParams.WRAP_CONTENT' per la proprietà' width' nel caso in cui la tua textview abbia un testo piccolo. –

0

Prova a gravità o Gravità layout per Framelayout o Textview. Rende il tuo layout al centro del schermo. Utilizzare come questo,

android:layout_gravity="center" 

o

android:gravity="center" 
+1

non aiuta, deve inserire dinamicamente – xandy

0

si può provare da impostare la gravità del testo di usarlo come-

textview.setGravity(Gravity.center); 

othervise da xml set gravità al centro in modo da esso ti visualizzerà al centro e se utilizzerai lo centerinparents quindi apparirà sempre al centro dello schermo.

+0

Non funziona. La vista appare ancora in alto a sinistra, ma il cursore è ora nel mezzo della vista –

0

Set FrameLayout proprietà android:layout_width e android:layout_height per fill_parent e anche impostare TextView proprietà LayoutGravity. come Center, Right o Top.

Grazie

0

Aggiungi android:layout_gravity="center" nel layout cornice

<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

non ha cambiato nulla .. :( –

0

Impostazione della gravità programatically sicuramente funziona Si prega di impostare il layout_gravity a destra nella xml TextView.setGravity (Gravity.RIGHT);

Problemi correlati