Android自定义tabitem,android – 自定义视图可以用作TabItem吗?

在某些情况下,我们可能希望为每个选项卡应用自定义XML布局,而不是默认选项卡视图.要实现此目的,请在将滑动选项卡附加到寻呼机后迭代所有TabLayout.Tabs:

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// Get the ViewPager and set it's PagerAdapter so that it can display items

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

SampleFragmentPagerAdapter pagerAdapter =

new SampleFragmentPagerAdapter(getSupportFragmentManager(), MainActivity.this);

viewPager.setAdapter(pagerAdapter);

// Give the TabLayout the ViewPager

TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);

tabLayout.setupWithViewPager(viewPager);

// Iterate over all tabs and set the custom view

for (int i = 0; i < tabLayout.getTabCount(); i++) {

TabLayout.Tab tab = tabLayout.getTabAt(i);

tab.setCustomView(pagerAdapter.getTabView(i));

}

}

//...

}

接下来,我们将getTabView(position)方法添加到SampleFragmentPagerAdapter类:

public class SampleFragmentPagerAdapter extends FragmentPagerAdapter {

private String tabTitles[] = new String[] { "Tab1", "Tab2" };

private int[] imageResId = { R.drawable.ic_one, R.drawable.ic_two };

public View getTabView(int position) {

// Given you have a custom layout in `res/layout/custom_tab.xml` with a TextView and ImageView

View v = LayoutInflater.from(context).inflate(R.layout.custom_tab, null);

TextView tv = (TextView) v.findViewById(R.id.textView);

tv.setText(tabTitles[position]);

ImageView img = (ImageView) v.findViewById(R.id.imgView);

img.setImageResource(imageResId[position]);

return v;

}

}

有了这个,您可以为适配器中的每个页面设置任何自定义选项卡内容.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值