【问题标题】:ViewPager Image in Fragment Title片段标题中的 ViewPager 图像
【发布时间】:2017-08-31 12:56:31
【问题描述】:

我用 3 个片段制作了一个 ViewPager:

public class MainActivity extends AppCompatActivity {

    TabLayout tabLayout;
    ViewPager viewPager;

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

        viewPager = (ViewPager) findViewById(R.id.viewPager);
        viewPager.setAdapter(new CustomAdapter(getSupportFragmentManager(),getApplicationContext()));

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

        tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                viewPager.setCurrentItem(tab.getPosition());
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
                viewPager.setCurrentItem(tab.getPosition());
            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {
                viewPager.setCurrentItem(tab.getPosition());
            }
        });

    }


    private class CustomAdapter extends FragmentPagerAdapter {

        private String fragments [] = {"Fragment 1","Fragment 2", "Fragment 3"};

        public CustomAdapter(FragmentManager supportFragmentManager, Context applicationContext) {
            super(supportFragmentManager);
        }

        @Override
        public Fragment getItem(int position) {
            switch (position){
                case 0:
                    return new Fragment1();
                case 1:
                    return new Fragment2();
                case 2:
                    return new Fragment3();
                default:
                    return null;
            }
        }

        @Override
        public int getCount() {
            return fragments.length;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return fragments[position];
        }
    }
}

我会用可绘制文件夹的图像代替字符串标题(如 Fragment 1,2...)。

【问题讨论】:

    标签: android android-viewpager fragment


    【解决方案1】:

    我没有从您的问题中得知您实际上想要做什么!但我假设你想设置图像而不是片段的标题。如果是,那么它可能会对您有所帮助。

    您可以使用带有 getTabAt,setIcon() 方法的 tabLayout 对象轻松设置图标。

    tabLayout.getTabAt(i).setIcon();
    

    您也可以参考:

    How to add page title and icon in android FragmentPagerAdapter

    P.S 如果您有不同的问题,请随时提出,谢谢。

    【讨论】:

    • 好的,谢谢。我想设置图像而不是片段的标题:D
    • 如何确定图标的大小?
    • 你好,你说的确定图标大小是什么意思?
    • 你好,我的图标很小,我怎样才能让它们变大?
    • 请增加您的图标大小然后使用它。如果您的图标在 mipmap 文件夹中,请将其移动到 drawable 文件夹中。
    【解决方案2】:

    如果您使用的是 tablayout 设计:

    tabLayout.getTabAt(i).setIcon();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-04
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多