2012-08-10 20 views
8

sto creando FrameLayout dinamicamente utilizzando il seguente codiceCrea layout di programmazione in Android - problema

mylayout.java

FrameLayout layout = new FrameLayout(this); 
FrameLayout.LayoutParams layoutparams=new FrameLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT,Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);    
layout.setLayoutParams(layoutparams); 

webview=new WebView(this); 
webview.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)); 

splashview=new ImageView(this); 
splashview.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)); 
splashview.setScaleType(ScaleType.FIT_XY); 
splashview.setImageResource(R.drawable.splash); 
splashview.setVisibility(View.INVISIBLE); 

progressbar=new ProgressBar(this); 
FrameLayout.LayoutParams params=new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.MATCH_PARENT,Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL); 
progressbar.setLayoutParams(params); 
progressbar.setVisibility(View.INVISIBLE);   


layout.addView(webview); 
layout.addView(progressbar); 
layout.addView(splashview); 

setContentView(layout); 

mylayout.xml

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_gravity="center_vertical|center_horizontal" 
    android:gravity="center_vertical|center_horizontal" > 

    <WebView 
     android:id="@+id/webview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 
    </WebView> 

<ProgressBar 
    android:id="@+id/progressBar" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical|center_horizontal" 
    android:visibility="invisible" /> 




    <ImageView 
     android:id="@+id/splashscreen" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:contentDescription="@string/myimg" 
     android:scaleType="fitXY" 
     android:src="@drawable/splash" 
     android:visibility="invisible" /> 

</FrameLayout> 

ho bisogno del equalent code for the above xml file in java. che errore ho fatto?

Nota: utilizzando il codice java sopra, ognuno si sovrappone.

+1

quale errore ho fatto? - quale errore hai notato? –

risposta

3

Android Developer - Frame Layout Documentation legge:

In generale, FrameLayout dovrebbe essere usato per contenere una singola vista del bambino, in quanto può essere difficile da organizzare viste figlio in un modo che è scalabile per diverse dimensioni dello schermo senza i bambini che si sovrappongono l'un l'altro. Tuttavia, puoi aggiungere più bambini a FrameLayout e controllare la loro posizione all'interno di FrameLayout assegnando la gravità a ciascun bambino, utilizzando l'attributo android:layout_gravity.

Nel tuo caso, è possibile utilizzare layout.setForegroundGravity(int) per lo stesso.

1

Aggiungi

layout.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL); 

o

layout.setGravity(Gravity.CENTER); 

Hai dimenticato di impostare la gravità del layout.

+0

se uso il codice sopra per il layout Framwork, mostrando un errore come "metodo non definito" – Ponmalar

+0

Sì, hai ragione .... ma il metodo è setForgroundGravity. Comunque grazie. Dare upvot – Ponmalar

Problemi correlati