English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
L'uso congiunto di TabLayout e ViewPager offre molte convenienze, ma TabLayout ha ancora molti punti che vengono criticati.
Vi spiego come impostare lo spazio tra le schede, ho trovato molti metodi su Internet, niente di utile, non c'è altra scelta, se si desidera utilizzare TabLayout, è necessario trovare un altro metodo. L'effetto è il seguente:
Metodo di implementazione, poiché questa cosa non è facile da configurare, faremo qualcosa di speciale sullo sfondo, il codice di layout è il seguente:
<android.support.design.widget.TabLayout xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/tl_download_tabs" android:layout_width="wrap_content" android:layout_height="30dp" android:layout_marginTop="10dp" android:layout_gravity="center_horizontal" android:overScrollMode="never" app:tabMode="fixed" app:tabPaddingStart="30dp" app:tabPaddingEnd="30dp" app:tabIndicatorHeight="0dp" app:tabBackground="@drawable/download_tab_bg_selector" app:tabSelectedTextColor="#000000" app:tabTextColor="#ffffff"/>
Secondo: il punto chiave si trova nel selector dello sfondo, come segue:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true"> <!--<shape> <solid android:color="#ffffff"/> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" /> </shape>---> <!--Per far si che i tab all'interno di TabLayout abbiano uno spazio tra di loro, non è stato trovato altro metodo di configurazione, quindi è necessario impostare l'intervento nel grafico di sfondo--> <layer-list> <item> <shape> <solid android:color="@android:color/transparent"/> </shape> </item> <item android:left="5dp" android:right="5dp"> <shape> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" /> <solid android:color="#ffffff"/> </shape> </item> </layer-list> </item> <item android:state_selected="false"> <!--<shape> <solid android:color="#bcbcbc"/> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" /> </shape>---> <layer-list> <item> <shape> <solid android:color="@android:color/transparent"/> </shape> </item> <item android:left="5dp" android:right="5dp"> <shape> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" /> <solid android:color="#bcbcbc"/> </shape> </item> </layer-list> </item> </selector>
I commenti sono stati rimossi per il selector originale senza intervalli, qui è stato impostato un padding laterale sullo sfondo, con un effetto straordinario.
Svantaggio: se gli intervalli sono troppo grandi, questo metodo ha un piccolo difetto, ovvero è possibile selezionare un tab cliccando su un'area vuota.
Tuttavia, per intervalli non molto grandi, è praticamente impercettibile.
L'uso dell'Activity è molto semplice:
TabLayout mTabLayout = (TabLayout) findViewById(R.id.tl_download_tabs); mTabLayout.addTab(mTabLayout.newTab().setText("Downloaded")); mTabLayout.addTab(mTabLayout.newTab().setText("In download")); mTabLayout.setupWithViewPager(mViewPager);
Quattro: originariamente sotto layout lineare, ci sono TabLayout e ViewPager, provando a avvolgere un RelativeLayout aggiuntivo all'esterno di TabLayout, si è scoperto che i testi dei tab non vengono visualizzati, riguardo a ciò che si dice su internet di scambiare l'ordine di addTab e setupWithViewPager è un trappola, si può vedere, ma è emersa una situazione ancora più assurda, ci sono due spazi vuoti davanti, e ci sono anche due normali dietro, è veramente strano.
Alla fine, è necessario gestire in Adapter, ricreare il seguente metodo è sufficiente, in realtà potrebbe essere più ragionevole, almeno può garantire che il numero di tab sia consistente con il numero di pagine di ViewPager.
@Override public CharSequence getPageTitle(int position) { if(position == 0){ return "Scaricato"; }else if(position == 1){ return "In download"; } return ""; }
Questa guida basata sulla configurazione dell'intervallo dei tab in TabLayout (esempio illustrativo) è tutto ciò che l'autore ha condiviso con voi. Spero che questo possa essere un riferimento utile e che spero che tutti possano sostenere il tutorial urla.
Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, il copyright spetta agli autori originali, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato elaborato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, invia un'e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.