2017-05-17 15 views
0

私はいくつかの条件happen.But私はここでそれをプログラムをタブレイアウトに追加するにはどうすればいいですか?

を行う方法見当がつかないが、タブのレイアウトは、任意の前のように見えるとき、タブのいずれかに画像を追加したい、私のアプリケーションでタブレイアウトを持っていますここで

tab layout before any changes

を変更し、私は赤の画像と赤の円上のテキストビューを望むをacheiveする条件です。

tab layout after changes

は、現在のタブのレイアウトのための私のコードは、私がタブレイアウトにコントロールを取得する方法、だから、最後にこの

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]); 
    tabLayout.getTabAt(3).setIcon(tabIcons[3]); 
    } 

    private void setupViewPager(ViewPager viewPager) { 
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
    adapter.addFragment(new 1stFragment(), "One"); 
    adapter.addFragment(new 2ndFragment(), "Two"); 
    adapter.addFragment(new 3rdFragment(), "Three"); 
    adapter.addFragment(new 4thFragment(), "Four"); 
    viewPager.setAdapter(adapter); 
    } 

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

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

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

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

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

    @Override 
    public CharSequence getPageTitle(int position) { 
     return null; 
    } 
} 

のように見えるので、私はに描画可能/画像を追加することができます誰かが正しい方向に向かわせてください。事前に感謝します。

答えて

2

カスタムレイアウトを使用する必要があります。

View v = LayoutInflater.from(this).inflate(R.layout.your_view, null); 
v.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
tabLayout.getTabAt(position).setCustomView(v); 

デザインyour_view.xmlレイアウト

+0

先生、yaから 'ビューv'をサポートしていますか? ? – ken

+0

あなたのイメージビュー、あなたのタブに表示するテキストビューを含むカスタムレイアウトのビューを作成する。 – Exigente05

+0

ああ..私はあなたの意志のように思っています。私はこれをしようとします – ken

関連する問題