Progettare un orizzontaleScrollView all'interno di ViewPager o utilizzare frammenti:

Ho bisogno di progettare la seguente schermata e ho bisogno del tuo consiglio:

immettere qui la descrizione dell'immagine

  • ListView l'inferno dell'elemento dell'articolo
  • Come modificare il colore del vector disegnabile sul clic del button
  • Alla ricerca di uno stile universale TabHost che funziona su skin Android, HTC Sense, Samsung, ecc
  • Errore di pugnale 2: la dipendenza "non può essere fornita senza un constructor di @Inject" mentre è effettivamente annotato con @Inject
  • Prova gli acquisti in-app di Android con applicazioni inedite
  • Come condividere text e image in Google Plus (G +) da Android senza utilizzare Intent?
  • Spiegazione:

    Il titolo è statico / fisso e non ho bisogno di fare nulla con esso.

    Giallo: questa è la parte interessante, devo disegnare uno schermo di ViewPager che ha la possibilità di scorrere a sinistra / destra per le schermate Max 4.

    Rosso: in each schermo devo aggiungere una tabella / griglia che può essere scrollabile anche se non è adatta alla dimensione dello schermo.

    Verde: la commutazione della pagina può essere effettuata usando i pulsanti verdi nella parte inferiore dello schermo o scorrendo il ViewPager .

    La domanda è: può questo comportmento essere raggiunto utilizzando un ViewPager o dovrei utilizzare i Fragments ? Se il frammento è il modo per andare, allora come faccio a implementare la commutazione della pagina utilizzando il gesto scorrevole? se è un ViewPager quindi come aggiungere lo scorrimento interno e come controllarlo utilizzando i pulsanti in basso?

    Qualsiasi aiuto sarebbe apprezzato, grazie.

  • IDEA - "Import dal model esterno" vs "Crea da origine esistente"?
  • Quale port e protocollo utilizza Google Cloud Messaging (GCM)?
  • Come aggiungere titolo, snippet e icona a ClusterItem?
  • Il metodo getSystemService (String) non è definito per il tipo Listen
  • Installazione di Vuforia in Android Studio
  • Android ViewPager call manualmente PageTransformsr transformPage
  • 2 Solutions collect form web for “Progettare un orizzontaleScrollView all'interno di ViewPager o utilizzare frammenti:”

    Penso che questo dovrebbe essere affrontato con un Non Swipeable ViewPager . Non c'è modo in che modo il pager di visualizzazione e il sottostante Fragment s dovrebbero rispondere al gesto di scorrimento. I methods da ignorare per disabilitare lo scorrimento all'interno di ViewPager sono:

    1. onTouchEvent() – restituisce false .
    2. onInterceptTouchEvent() – restituisce false .

    Fare riferimento a questa domanda di SO per ulteriori informazioni su come realizzarlo.

    Avanti, si desidera utilizzare Fragment s all'interno di ciascuno dei titolari di pager. Quindi stiamo costruendo il layout seguente:

    All'interno dell'attività principale un FragmentPagerAdapter viene istanziato e le tue tabs sono aggiunte con un tag:

    Cambiamenti di attività

     @Override protected void onCreate(final Bundle saveInstanceState) { final FragmentPagerAdapter myTabAdapter = new MyFragmentPagerAdapter( <Your ViewPager View>, <Your activity context, this>); myTabAdapter.addTab(getActionBar().newTab(), "YOUR TAG", "Your Title"); // etc... } 

    Quindi questo ci dà la cornice del diagramma sopra riportto. Un'attività di hosting che contiene un ViewPager e le tabs sottostanti. Successivamente sta ottenendo il Fragment s (contenente le tabelle) in ciascuna delle rispettive tabs. Questo viene gestito dall'implementazione di FragmentPagerAdapter :

    Adattatore di frammento (class interna all'attività):

     private class MyFragmentPagerAdapter extends FragmentPagerAdapter implements ActionBar.TabListener, ViewPager.OnPageChangeListener { /** * Constructs a pager adapter to back a {@link ViewPager}. * * @param pager * The {@link ViewPager} widget. * @param activityContext * The context the widget is being added under. */ public SpotMenuFragmentPagerAdapter(final ViewPager pager, final Context activityContext) { super(getFragmentManager()); pager.setAdapter(this); this.context = activityContext; } /** * Adds a tab to the hosting activity action bar. * * @param newTab * The tab to add. * @param tag * The tab tag for id purposes. * @param label * The label of the tab displayed to the user. */ public void addTab(final ActionBar.Tab newTab, final String tag, final String label) { newTab.setTag(tag); newTab.setText(label); newTab.setTabListener(this); getSupportActionBar().addTab(newTab); } /** * This is where you do the work of building the correct fragment based * on the tab currently selected. * * @see FragmentPagerAdapter#getItem(int) */ @Override public Fragment getItem(final int position) { final Tab tab = getActionBar().getTabAt(position); if ("MY TAG".equals(tab.getTag().toString()) { // instantiate the fragment (table) for "MY TAG" } else { // instantiate something else... } } /** * One fragment per tab. * * @see android.support.v4.view.PagerAdapter#getCount() */ @Override public int getCount() { return getSupportActionBar().getTabCount(); } /** * @see ViewPager.OnPageChangeListener#onPageScrollStateChanged(int) */ @Override public void onPageScrollStateChanged(final int arg0) { // No-op. } /** * @see ViewPager.OnPageChangeListener#onPageScrolled(int, float, int) */ @Override public void onPageScrolled(final int arg0, final float arg1, final int arg2) { // No-op. } /** * @see ViewPager.OnPageChangeListener#onPageSelected(int) */ @Override public void onPageSelected(final int position) { getSupportActionBar().setSelectedNavigationItem(position); } /** * @see TabListener#onTabSelected(app.ActionBar.Tab, * app.FragmentTransaction) */ @Override public void onTabSelected(final Tab tab, final FragmentTransaction ft) { viewPager.setCurrentItem(tab.getPosition()); } /** * @see TabListener#onTabUnselected(ActionBar.Tab, * app.FragmentTransaction) */ @Override public void onTabUnselected(final Tab tab, final FragmentTransaction ft) { // No-op. } /** * @see TabListener#onTabReselected(ActionBar.Tab,app.FragmentTransaction) */ @Override public void onTabReselected(final Tab tab, final FragmentTransaction ft) { // No-op. } } 

    Quindi speriamo che a questo punto abbiamo un'attività che ospita un pager di visualizzazione "non swipeable" e un meccanismo per la commutazione di tabs sotto forma di barra sotto il titolo (o accanto a seconda della dimensione dello schermo). Da questo punto sono sicuro che puoi personalizzare per sostituire la barra delle tabs con alcune frecce di navigazione.

    Nota: Un sacco di ciò è stato scritto dalla memory ma spero che ho trasmesso la scoperta di where vorrei andare con questo.

    Aggiornare

    In risposta alla domanda aggiornata: puoi impostare la scheda come una vecchia visualizzazione. Impostare TabSpec di conseguenza. Scusami Non l'ho ancora usata.

    È necessario utilizzare HorizontalScrollView che contiene un LinearLayout e il Lineare è quello che contiene i singoli elementi

    L'XML potrebbe vedere qualcosa di simile

      <HorizontalScrollView android:id="@+id/horizontal_scroll_parent" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="horizontal" android:scrollbarStyle="outsideInset"> <LinearLayout android:id="@+id/content_scroll" android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="horizontal" android:gravity="center_vertical" /> </HorizontalScrollView> 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.