Autore Topic: Scroll in Activity con ViewPager e Fragments  (Letto 1520 volte)

Offline mary2501

  • Utente junior
  • **
  • Post: 70
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    mac , windows xp
Scroll in Activity con ViewPager e Fragments
« il: 30 Aprile 2012, 17:18:55 CEST »
0
Ciao a tutti!

Sto creando un applicazione "a più pagine".
Quest'applicazione, quando rileva uno scroll orizzontale (ovvero quando rileva un cambiamento di pagina), deve mostrare un layout diverso.
Per poterlo fare ho seguito questo tutorial:
 http://www.anddev.it/index.php/topic,6717.0.html

Ho due domande:
1) come posso implementare lo scroll verticale su ogni singola pagina/fragment? se metto in alto nel xml uno ScrollView crasha!
2) non c'è un metodo più semplice per creare un activity con più pagine? Mi spiego meglio:
    per creare una nuova pagina devo creare una nuova classe e un nuovo xml con il relativo nuovo layout. Non c'è un metodo per fare in modo
che io crei solo un nuovo layout senza che crei anche una nuova classe (che in quest'app non utilizzo) ?

Spero di essermi spiegata!
Grazie a tutti
;)

Offline IacopoDeeNosee

  • Utente junior
  • **
  • Post: 127
  • Respect: +33
    • Google+
    • iacopodeenosee
    • Mostra profilo
    • visualhunter
  • Dispositivo Android:
    Samsung Nexus S - GT-I9023
  • Play Store ID:
    IacopoDeeNosee
  • Sistema operativo:
    Arch linux x86_64
Re:Scroll in Activity con ViewPager e Fragments
« Risposta #1 il: 30 Aprile 2012, 20:14:58 CEST »
0
2) non c'è un metodo più semplice per creare un activity con più pagine? Mi spiego meglio:
    per creare una nuova pagina devo creare una nuova classe e un nuovo xml con il relativo nuovo layout. Non c'è un metodo per fare in modo
che io crei solo un nuovo layout senza che crei anche una nuova classe (che in quest'app non utilizzo) ?
Non so se conosci questa libreria ma credo che sia il modo più semplice e veloce per implementare lo switch orizzontale di più pagine su di una activity:
ViewPagerIndicator
utilizzandola potrai crearti N layout per N pagine e le gestirai tutte in un unica classe che estende PagerAdapter...credo che sul link sopra troverai la cosa meglio descritta e con un esempio da studiare.8y3

Offline mary2501

  • Utente junior
  • **
  • Post: 70
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    mac , windows xp
Re:Scroll in Activity con ViewPager e Fragments
« Risposta #2 il: 01 Maggio 2012, 10:22:11 CEST »
0
Ho provato a seguire quel link che hai postato ma con scarsi risultati..
Non c'è un vero tutorial, e mi pare a occhio molto più complesso..
Non sono neanche riuscita a far partire il codice da eclipse per poter vedere il risultato perchè mi da una marea di errori!

Offline IacopoDeeNosee

  • Utente junior
  • **
  • Post: 127
  • Respect: +33
    • Google+
    • iacopodeenosee
    • Mostra profilo
    • visualhunter
  • Dispositivo Android:
    Samsung Nexus S - GT-I9023
  • Play Store ID:
    IacopoDeeNosee
  • Sistema operativo:
    Arch linux x86_64
Re:Scroll in Activity con ViewPager e Fragments
« Risposta #3 il: 01 Maggio 2012, 15:50:28 CEST »
+1
se ti interessa ti passo uno zip(in allegato al post) con dentro un progetto di test e il progetto-libreria che implementa il widget che ti avevo proposto sopra,il progetto di test deve inglobare il ViewPagerIndicator come è spiegato qui: Managing Projects from Eclipse with ADT | Android Developers
questo esempio ti assicuro che non dà errori.8y3

Offline mary2501

  • Utente junior
  • **
  • Post: 70
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    mac , windows xp
Re:Scroll in Activity con ViewPager e Fragments
« Risposta #4 il: 02 Maggio 2012, 10:59:57 CEST »
0
Finalmente .. Dopo che ho passato ore a lottare con eclipse ci sono riuscita! Per tutti quelli che vogliono utilizzare questo codice (a parer mio ottimo ) devono aggiungere la cartella ViewPagerIndicator in tasto dx->proprietà->Java Build Path ->Source -> Link Source e poi inserire la cartella di View Pager Indicator.. Successivamente recarsi sempre su proprietà nella sezione android e aggiungere (tramite add) nella sezione library la nuova libreria/progetto (ViewPagerIndicator) !!!

Grazie a tutti!
« Ultima modifica: 02 Maggio 2012, 14:08:01 CEST da mary2501 »

Offline mary2501

  • Utente junior
  • **
  • Post: 70
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc desire hd
  • Sistema operativo:
    mac , windows xp
Re:Scroll in Activity con ViewPager e Fragments
« Risposta #5 il: 05 Maggio 2012, 13:23:29 CEST »
0
Ti chiedo l'ultima cosa..
Adesso voglio fare questo:
se ad esempio nella pagina 4 l'utente tocca un bottone vada direttamente alla pagina 6 se invece ne tocca un altro vada direttamente alla pagina 15.. Questo come si può fare?

Offline IacopoDeeNosee

  • Utente junior
  • **
  • Post: 127
  • Respect: +33
    • Google+
    • iacopodeenosee
    • Mostra profilo
    • visualhunter
  • Dispositivo Android:
    Samsung Nexus S - GT-I9023
  • Play Store ID:
    IacopoDeeNosee
  • Sistema operativo:
    Arch linux x86_64
Re:Scroll in Activity con ViewPager e Fragments
« Risposta #6 il: 05 Maggio 2012, 13:53:30 CEST »
0
se ad esempio nella pagina 4 l'utente tocca un bottone vada direttamente alla pagina 6 se invece ne tocca un altro vada direttamente alla pagina 15.. Questo come si può fare?
chiami il metodo del ViewPager setCurrentItem passandogli il numero della pagina da mostrare,riprendendo l'esempio con le modifiche che trovi qui sotto una volta premuto il tasto nella pagina paperino torni alla pagina pippo.8y3
Codice (Java): [Seleziona]
...
@Override
public Object instantiateItem(View pager, int position) {
        View viewll = null;
        final ViewPager pgrT = (ViewPager) pager;
...
        case 2:
                viewll = inflater.inflate(R.layout.paperino, null);

                Button btnPaperino = (Button) viewll
                                .findViewById(R.id.btn_paperino);
                btnPaperino.setOnClickListener(new View.OnClickListener() {
                        public void onClick(View view) {

                                Toast.makeText(context, "un ciao dal PAPERO",
                                                Toast.LENGTH_LONG).show();

                                /*
                                 * con questo torno alla prima pagina -> pippo
                                 */

                                pgrT.setCurrentItem(0);
                        }
                });

                break;
...