0

Я пытаюсь показать значки в моей вкладке, я использую tablayout и ViewPager, но когда я звоню tablayout.setupWithViewPager (ViewPager) мои иконки исчезают Min SDK является 16 Target является 24 Поддержка библиотеки 24.2.1не в состоянии показать иконки в Tablayout

это, как я устанавливаю мои вкладки: -

private void setUpTabs(){ 
     tabs.setupWithViewPager(viewpager); 

     TabLayout.Tab discoverTab = tabs.newTab(); 
     TabLayout.Tab placesTab = tabs.newTab(); 
     TabLayout.Tab rewardTab = tabs.newTab(); 

     Drawable discover = ContextCompat.getDrawable(this, R.drawable.discover); 
     discover.setAlpha(255); 
     discover.setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP); 
     Drawable places = ContextCompat.getDrawable(this, R.drawable.places); 
     places.setAlpha(55); 
     places.setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP); 
     Drawable rewards = ContextCompat.getDrawable(this, R.drawable.rewards); 
     rewards.setAlpha(55); 
     rewards.setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP); 

     discoverTab.setIcon(discover); 
     placesTab.setIcon(places); 
     rewardTab.setIcon(rewards); 

     tabs.addTab(discoverTab,0); 
     tabs.addTab(placesTab,1); 
     tabs.addTab(rewardTab,2); 
    } 

ViewPager: -

private void setUpViewPager(){ 
     ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     adapter.addFrag(DiscoverFragment.getFragment(null),"Discover"); 
     adapter.addFrag(PlacesFragment.getFragment(null),"Places"); 
     adapter.addFrag(RewardsFragment.getFragment(null),"Rewards"); 
     viewpager.setAdapter(adapter); 
    } 

ViewPagerAdapter: -

public class ViewPagerAdapter extends FragmentStatePagerAdapter { 
    private final List<Fragment> mFragmentList = new ArrayList<>(); 
    private final List<String> mFragmentTitleList = new ArrayList<>(); 

    public ViewPagerAdapter(FragmentManager manager) { 
     super(manager); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return mFragmentList.get(position); 
    } 

    @Override 
    public int getCount() { 
     return mFragmentList.size(); 
    } 

    public void addFrag(Fragment fragment, String title) { 
     mFragmentList.add(fragment); 
     mFragmentTitleList.add(title); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 

     // return null to display only the icon 
     return null; 
    } 
} 

мой макет XML: -

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/action_bar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/colorPrimary" 
      app:tabGravity="fill" 
      app:tabIndicatorColor="@android:color/white" 
      app:tabMode="fixed" 
      app:tabSelectedTextColor="?attr/colorAccent" 
      app:tabTextColor="@android:color/black" /> 

    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
</android.support.design.widget.CoordinatorLayout> 
+0

вы можете поделиться код –

+0

@UmarAta, пожалуйста, зарегистрируйтесь сейчас – r4jiv007

+0

попробуйте пересадить ce this adapter.addFrag (DiscoverFragment.getFragment (null), «Discover»); с адаптером.addFrag (DiscoverFragment.getFragment (null), ""); затем поделитесь результатом –

ответ

1

Просто попробуйте, как она будет работать для вас

import android.os.Bundle; 
import android.support.design.widget.TabLayout; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 

import java.util.ArrayList; 
import java.util.List; 

public class MainActivity extends AppCompatActivity { 

    private Toolbar toolbar; 
    private TabLayout tabLayout; 
    private ViewPager viewPager; 
    private int[] tabIcons = { 
      R.drawable.ic_tab_favourite, 
      R.drawable.ic_tab_call, 
      R.drawable.ic_tab_contacts 
    }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

     viewPager = (ViewPager) findViewById(R.id.viewpager); 
     setupViewPager(viewPager); 

     tabLayout = (TabLayout) findViewById(R.id.tabs); 
     tabLayout.setupWithViewPager(viewPager); 
     setupTabIcons(); 
    } 

    private void setupTabIcons() { 
     tabLayout.getTabAt(0).setIcon(tabIcons[0]); 
     tabLayout.getTabAt(1).setIcon(tabIcons[1]); 
     tabLayout.getTabAt(2).setIcon(tabIcons[2]); 
    } 

    private void setupViewPager(ViewPager viewPager) { 
     ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     adapter.addFrag(new OneFragment(), "ONE"); 
     adapter.addFrag(new TwoFragment(), "TWO"); 
     adapter.addFrag(new ThreeFragment(), "THREE"); 
     viewPager.setAdapter(adapter); 
    } 

    class ViewPagerAdapter extends FragmentPagerAdapter { 
     private final List<Fragment> mFragmentList = new ArrayList<>(); 
     private final List<String> mFragmentTitleList = new ArrayList<>(); 

     public ViewPagerAdapter(FragmentManager manager) { 
      super(manager); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return mFragmentList.get(position); 
     } 

     @Override 
     public int getCount() { 
      return mFragmentList.size(); 
     } 

     public void addFrag(Fragment fragment, String title) { 
      mFragmentList.add(fragment); 
      mFragmentTitleList.add(title); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitleList.get(position); 
     } 
    } 
} 

Для дополнительной проверки Tablayout

+0

, который поддерживает библиотека u? – r4jiv007

+0

проверить полный пример в ссылке –

Смежные вопросы