CardView适用于实现卡片式布局效果的重要控件,由appcompat-v7库提供,实际上CardView也是一个FrameLayout,只是额外提供了圆角和阴影效果,看上去有立体的感觉。一般CardView都用在ListView的item布局中。
compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.android.support:cardview-v7:25.2.0' 注意版本必须一致
cardView的常用属性:
app:cardBackgroundColor这是设置背景颜色
app:cardCornerRadius这是设置圆角大小
app:cardElevation这是设置z轴的阴影
app:cardMaxElevation这是设置z轴的最大高度值
app:cardUseCompatPadding是否使用CompatPadding
app:cardPreventCornerOverlap是否使用PreventCornerOverlap
app:contentPadding 设置内容的padding
app:contentPaddingLeft 设置内容的左padding
app:contentPaddingTop 设置内容的上padding
app:contentPaddingRight 设置内容的右padding
app:contentPaddingBottom 设置内容的底padding
效果如下:
2.顶部导航之TabLayout和ViewPager的组合 效果如下:
1).引用:implementation 'com.android.support:design:26.1.0'
注意 Android studio 3.0以后,引入依赖关键词变成了implementation,
在之前版本的关键词是 compile;
2).将tab项添加到TabLayout中
mTabLayout.addTab(tab1);
mTabLayout.addTab(tab2);
mTabLayout.addTab(tab3);
3).适配器中添加数据 ,再把TabLayout和ViewPager组合,使用setupWithViewPager可以让TabLayout和ViewPager联动
fragments=new ArrayList<>();
//将提前写好三个Fragment添加到集合中
fragments.add(new FirstFragment());
fragments.add(new SecondFragment());
fragments.add(new ThirdFragment());
//创建适配器
TabPageAdapter pageAdapter = new TabPageAdapter(getSupportFragmentManager(), fragments);
//设置ViewPager的适配器
mViewPager.setAdapter(pageAdapter);
//把TabLayout和ViewPager组合,使用setupWithViewPager可以让TabLayout和ViewPager联动
mTabLayout.setupWithViewPager(mViewPager);
4).tab项但Tab项上没有文字了,解决办法就是重写适配器的getPageTitle()
方法.
5).TabLayout的事件监听
mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
//tab项选中状态时执行
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
//tab项取消选中状态时执行
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
//tab项选中状态再次点击时执行
}
});