Autore Topic: Esempio Fragment, visualizzazione errata.  (Letto 948 volte)

Offline liuk78

  • Utente junior
  • **
  • Post: 73
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Esempio Fragment, visualizzazione errata.
« il: 21 Luglio 2011, 11:30:11 CEST »
0
Ciao a tutti
ho scaricato e runnato questo esempio
How to use the Fragment class in the Android Honeycomb SDK preview - O'Reilly Answers
(spero non sia un problema il link, nel caso toglietelo  :-P)
a differenza del tutorial però nel mio emulatore l'app è al centro e molto piu piccola, infatti non si vedono neanche le voci "five" e "six" nella ListView di sinistra ma bisogna scrollare.
Allego immagine del mio emulatore


Ho provato ad inserire anche questa direttiva in FragmentTestActivity, che in altre situazioni ha funzionato, ma non ho ottenuto nessun cambiamento.

Codice: [Seleziona]
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

Grazie a tutti
 :-)

Offline liuk78

  • Utente junior
  • **
  • Post: 73
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Esempio Fragment, visualizzazione errata.
« Risposta #1 il: 22 Luglio 2011, 12:31:32 CEST »
0
UP  :D

Riproviamo...  :-P

main.xml

Codice (XML): [Seleziona]
 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="horizontal"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"

   android:id="@+id/frags">

    <ListView
           android:id="@+id/number_list"
           android:layout_width="250dpi"
           android:layout_height="fill_parent" />
           
    <fragment
           class="my.android.tablet.TestFragment"
           android:id="@+id/the_frag"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent" />

</LinearLayout>


FragmentTestActivity

Codice (Java): [Seleziona]
package my.android.tablet;

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class FragmentTestActivity extends Activity implements OnItemClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        ListView l = (ListView) findViewById(R.id.number_list);
        ArrayAdapter numbers = new ArrayAdapter<String>(getApplicationContext(),
                        android.R.layout.simple_list_item_1,
                        new String [] {
                "Page 1", "Page 2", "Page 3", "Page 4", "Page 5", "Page 6"
        });
        l.setAdapter(numbers);
        l.setOnItemClickListener(this);
    }

   
    /**
     * Add a Fragment to our stack with n Androids in it
     */

    private void stackAFragment(int nAndroids) {

        Fragment f = new TestFragment(nAndroids);
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        ft.replace(R.id.the_frag, f);
        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
        ft.addToBackStack(null);
        ft.commit();
    }

        /**
         * Called when a number gets clicked
         */

        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                stackAFragment(position + 1);
        }
}



Codice (Java): [Seleziona]
package my.android.tablet;

import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class TestFragment extends Fragment {
    private int nAndroids;
    WebView webView;
   
    public TestFragment() {
       
    }

   /**
    * Constructor for being created explicitly
    */

   public TestFragment(int nAndroids) {
                Log.d("TestWebViewFragment", "nAndroids nel costruttore = " + nAndroids);
                this.nAndroids = nAndroids;
    }

    /**
     * If we are being created with saved state, restore our state
     */

    @Override
    public void onCreate(Bundle saved) {
        super.onCreate(saved);
        if (null != saved) {
                nAndroids = saved.getInt("nAndroids");
        }
    }
   
    /**
     * Save the number of Androids to be displayed
     */

    @Override
    public void onSaveInstanceState(Bundle toSave) {
        toSave.putInt("nAndroids", nAndroids);
    }

    /**
     * Make a grid and fill it with n Androids
     */

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle saved) {
        int n;
        Context c = getActivity().getApplicationContext();
        LinearLayout l = new LinearLayout(c);
        webView = new WebView(c);
        webView.getSettings().setJavaScriptEnabled(true);

        if(nAndroids!=0)
        {
            String htmlPage = "file:///android_asset/Page"+nAndroids+".html";
            webView.loadUrl(htmlPage);
            l.addView(webView);
        }

        return l;
    }
}

Tutte le pagine html che richiamo dal folder /assets

Codice (HTML): [Seleziona]
<html>
<body>
<h1>Page 1</h1>
</body>
</html>

Allego lo screen dove si vede la mia applicazione al centro dello schermo piuttosto che fullscreen.



Ho provato a giocare con fill_parent wrap_content e match_parent, ho provato ridimensionando l'emulatore dall' SDK Manager, ho provato a mettere dimensioni statiche e tutto funziona, peccato però che tutti i cambiamenti siano comunque relativi a quel quadrato dove si vede l'applicazione. Sembra come se ci fosse una direttiva che gli dica che lo spazio da usare per l'applicazione sia quel quadrato.

Grazie a tutti
 :D

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Esempio Fragment, visualizzazione errata.
« Risposta #2 il: 22 Luglio 2011, 14:04:42 CEST »
0
Sei sicuro di stare usando le api 3.x?
Postate il LogCat LogCat LogCat LogCat LogCat

Offline liuk78

  • Utente junior
  • **
  • Post: 73
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Esempio Fragment, visualizzazione errata.
« Risposta #3 il: 22 Luglio 2011, 14:13:58 CEST »
0
Sei sicuro di stare usando le api 3.x?

Credo proprio di si.
Nel file default.properties come target è impostato "target=android-11".
Io uso Netbeans 6.9.1

Offline liuk78

  • Utente junior
  • **
  • Post: 73
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Esempio Fragment, visualizzazione errata.
« Risposta #4 il: 22 Luglio 2011, 15:31:50 CEST »
0
scusate avevo clicckato su "risolto" al posto di rispondi....   
HELP ME  :-P :-P :-P

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Esempio Fragment, visualizzazione errata.
« Risposta #5 il: 22 Luglio 2011, 15:59:20 CEST »
0
io per prima cosa passerei ad eclipse....
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline liuk78

  • Utente junior
  • **
  • Post: 73
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Esempio Fragment, visualizzazione errata.
« Risposta #6 il: 22 Luglio 2011, 16:59:54 CEST »
0
io per prima cosa passerei ad eclipse....

Per ora sono "costretto" ad usare NetBeans, appena potrò passerò ad eclipse come per tutto il resto!
 :-P