2016-07-17 11 views

Antwort

0

Sie benutzerdefinierte Ansicht verwenden können

setCustomView.xml:

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

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="fitCenter" 
     android:id="@+id/icon" 
     android:layout_gravity="center_horizontal" /> 
</LinearLayout> 

Java-Code:

int[] icons = new int[]{R.drawable.my1, R.drawable.my2, R.drawable.my3}; 
View view = getLayoutInflater().inflate(R.layout.customtab, null); 
for (int i = 0; i < 3; i++) { 
     view.findViewById(R.id.icon).setBackgroundResource(icons[i]); 
     tabLayout.addTab(tabLayout.newTab().setCustomView(view)); 
} 
+0

Es wird mit drei Symbolen, sondern Texte drei neue Registerkarten hinzufügen. Ich habe das TabLayout mit ViewPager eingerichtet, so dass nach der Ausführung des Programms die Registerkarten in diesem Layout von den Seitentiteln des ViewPager-Adapters ausgefüllt werden. Ich habe drei Papiere, insgesamt habe ich bis zu 6 Tabs. Wie man sie zusammenbringt? – helloworld

+0

kannst du mir helfen? – helloworld

+0

Sie können foreach verwenden –

2

Sie Sie benutzerdefinierte Layout innerhalb einer for-Schleife anwenden können:

mTabLayout.addTab(mTabLayout.newTab().setIcon(R.drawable.searchpin)); 
mTabLayout.addTab(mTabLayout.newTab().setIcon(R.drawable.discussionpin)); 
mTabLayout.addTab(mTabLayout.newTab().setIcon(R.drawable.userpin)); 

for (int i = 0; i < mTabLayout.getTabCount(); i++) { 
    TabLayout.Tab tab = mTabLayout.getTabAt(i); 
    if (tab != null) tab.setCustomView(R.layout.view_home_tab); 
} 

Hier ist die xml:

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

    <ImageView 
     android:id="@android:id/icon" 
     android:layout_width="@dimen/tab_icon_size" 
     android:layout_height="@dimen/tab_icon_size" 
     android:layout_centerInParent="true"/> 

</RelativeLayout> 
Verwandte Themen