Autore Topic: Resize layout da java  (Letto 468 volte)

Offline salvatore.zagarella

  • Utente normale
  • ***
  • Post: 239
  • Respect: +2
    • Mostra profilo
    • Ieeng Solution
Resize layout da java
« il: 21 Aprile 2013, 14:23:45 CEST »
0
Salve ragazzi,
sono ancora qui a chiedervi una mano su una questione..Il resize del layout da codice java..

Vi spiego la situazione: la mia app è basata su un fragment e dentro il corpo centrale vi sono diversi elementi. In base al fatto chè l'utente sia loggato o no al mio sistema, devo ridimensionare e far comparire alcuni elementi del layout; il tutto è in una webView.

Per quanto riguarda il ridimensionamento e la comparsa degli elementi, sono riuscito con il codice seguente
Codice (Java): [Seleziona]
ViewParent parent = (ViewParent) view.getParent();       //prendo il parent della webView                      
((ViewGroup)parent).getChildAt(2).setVisibility(View.VISIBLE);  //faccio comparire questo elemento             
((ViewGroup)parent).setLayoutParams(new FrameLayout.LayoutParams(350, 520)); //ridimensiono il layout

Il tutto funziona solo che gli elementi mi vengono posizionati in alto a sinistra, mentre io vorrei che fossero centrati orizzontalmente, uno sotto l'altro.

Per completezza vi posto anche il layout.

Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/RelativeWeb"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="@drawable/border"
   android:visibility="visible"
   tools:context=".MainActivity" >

    <WebView
       android:id="@+id/webView1"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:layout_below="@+id/imageViewLogin"
       android:layout_centerHorizontal="true"
       android:layout_margin="5dp"
       android:visibility="visible" />

    <ImageView
       android:id="@+id/imageViewLogin"
       android:layout_width="200dp"
       android:layout_height="200dp"
       android:layout_alignParentTop="true"
       android:layout_centerHorizontal="true"
       android:layout_marginBottom="10dp"
       android:layout_marginTop="10dp"
       android:src="@drawable/login"
       android:visibility="gone" />

</RelativeLayout>


Come posso risolvere la questione? Penso sia una questione di graviti o simili, però non riesco a trovare il bandolo...

Grazie..

Post unito: 21 Aprile 2013, 18:45:07 CEST
Ragazzi niente da nessuno??
 ???
« Ultima modifica: 21 Aprile 2013, 18:45:07 CEST da salvatore.zagarella, Reason: Merged DoublePost »

Offline mistico86

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    s3
  • Sistema operativo:
    windows 7
Re:Resize layout da java
« Risposta #1 il: 23 Aprile 2013, 18:30:47 CEST »
0
potresti postare il codice che usi x ridimensionare il layout?grazie

Offline salvatore.zagarella

  • Utente normale
  • ***
  • Post: 239
  • Respect: +2
    • Mostra profilo
    • Ieeng Solution
Re:Resize layout da java
« Risposta #2 il: 23 Aprile 2013, 18:37:52 CEST »
0
Raga alla fine era un problema di autocompletamento di eclipse che non mi mostrava i metodi...
Ecco la soluzione implementata, per chi servisse.. ;)

Codice (Java): [Seleziona]
@Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {    
       ......
      .......
      ViewParent parent = (ViewParent) view.getParent();                        //dalla webview ottengo il layout che la contiene

      RelativeLayout.LayoutParams lp;
      lp = new RelativeLayout.LayoutParams(350,400);                                               //rimpicciolisco
      lp.setMargins(0, 10, 0, 0);
      lp.addRule(RelativeLayout.CENTER_HORIZONTAL);                                              //centro
      lp.addRule(RelativeLayout.BELOW, ((ViewGroup)parent).getChildAt(1).getId());      //e posiziono sotto un altro elemento


     ((View)view.getParent()).setLayoutParams(lp);          //applico il LayoutParams al layout che contiene la mia webView

     return false;
}

Ecco qui..
;)