2015-10-17 10 views
5

L'abitudine è sempre centrata in Tablayout. Il tablayout è il seguente. Come ottenere tutto lo spazio disponibile per il suo genitore, ad esempio TabView.Visualizzazione personalizzata di Tablayout di Android Design non compatibile con il genitore

<android.support.design.widget.TabLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/tablayout" 
    android:layout_width="match_parent" 
    app:tabPaddingStart="0dp" 
    app:tabPaddingEnd="0dp" 
    android:layout_height="90dp"> 
</android.support.design.widget.TabLayout> 

L'aggiunta di un TextView come qui di seguito

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@android:color/holo_purple" 
    android:gravity="center_horizontal"> 

<TextView 
    android:text="Hello !" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 
</LinearLayout> 

Ma purtroppo è sempre centrata e mai ottenere l'intero spazio. Il problema è che non posso fornire un divisore tra le schede dato che è sempre al centro.

codice

Java per schede aggiungendo:

TabLayout v = (TabLayout)findViewById(R.id.tablayout); 
    TabLayout.Tab tab = v.newTab(); 
    tab.setCustomView(R.layout.content_main); 
    v.addTab(tab); 
    tab = v.newTab(); 
    tab.setCustomView(R.layout.content_main); 
    v.addTab(tab); 
    tab = v.newTab(); 
    tab.setCustomView(R.layout.content_main); 
    v.addTab(tab) 

I'v condiviso l'immagine @http://i60.tinypic.com/11cdvyf.jpg

risposta

7

Bug è registrato qui: https://code.google.com/p/android/issues/detail?id=190429

Anche se è possibile aggirare lo gonfiando la visualizzazione personalizzata e quindi applicare manualmente i parametri di layout:

View v = LayoutInflater.from(this).inflate(R.layout.view_goal_tab_active, null); 
TextView tv = (TextView)v.findViewById(R.id.goal_tab_active_tv); 
tv.setSelected(true); 
v.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
mTabs.getTabAt(0).setCustomView(v); 
Problemi correlati