【问题标题】:How to create Tabs with icons and text TabLayout android如何使用图标和文本 TabLayout android 创建选项卡
【发布时间】:2016-08-12 15:38:01
【问题描述】:

我正在开发一个 android 应用程序,并希望创建一个如下所示的布局。

我想让选项卡与此布局中显示的相同,它将水平滚动。我想在这些选项卡上设置反应和文本的图标。图标是我需要显示的服务器图像,但我不知道如何在选项卡中将服务器 url 图像显示为图标。

除了TabLayout 或滑动TabLayout 之外,还有其他方法可以得到与图片中相同的UI 吗?

如果有人知道怎么做,请帮忙。

【问题讨论】:

标签: android android-tablayout


【解决方案1】:

ViewPager 适配器

public class ViewPagerAdapter extends FragmentPagerAdapter {
private static int NUM_ITEMS = 2;
private Context mContext;
private String[] tabText;



public ViewPagerAdapter(FragmentManager fragmentManager, Context context) {
    super(fragmentManager);
    this.mContext = context;
    this.tabText = new String[]{
            "First tab",
            "second tab"
    };



}

@Override
public Fragment getItem(int position) {
    switch (position) {
        case 0:
            return new FirstFragment();
        case 1:
            return new SecondFragment();
        default:
            return null;
    }
}

@Override
public int getCount() {
    return NUM_ITEMS;
}

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

}

MainActivity.Java

    private int[] imageResId = {// icon resource };
    mTabLayout = (TabLayout) view.findViewById(R.id.tl_viewer);
    mViewpager = (ViewPager) view.findViewById(R.id.vp_viewer);
    mTabLayout.setupWithViewPager(mViewpager);


   //Method to set up tab layout icon
   private void setUpTabIcon() {
    for (int i = 0; i < mTabLayout.getTabCount(); i++) {

        mTabLayout.getTabAt(i).setIcon(imageResId[i]);


    }

}

从 ViewPager 适配器中选取的选项卡计数和选项卡文本。和从 setTabIcon 方法中选取的图标

【讨论】:

  • 感谢代码,代码真的很有帮助。但我的问题是我的图像以 url 的形式来自服务器,那么如何将它们设置为选项卡作为图标。我的资源目录中没有保存可绘制的图像。如果您对此不了解,请给我一些建议。
  • mTabLayout.getTabAt(i).setIcon(Drawable d) 这个函数将接受drawable。您可以使用任何库 Picasso 、 Glide 等下载您的图像,然后将该图像转换为可绘制并设置在 Tab 图标上。
【解决方案2】:

您需要为标签设置自定义布局。 看这个链接How to set icon next to text in tablayout

为了回答您显示服务器图像的另一个查询,您可以为此目的使用库,例如​​ http://square.github.io/picasso/

【讨论】:

    【解决方案3】:

    请使用下面的 Android hive 链接。 Android Hive 非常适合使用 TabLayout -

    http://www.androidhive.info/2015/09/android-material-design-working-with-tabs/

    【讨论】:

      猜你喜欢
      • 2017-06-06
      • 2016-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多