初识 android v7 包

本文详细介绍了Android的v7包,包括RecyclerView、Toolbar、TabLayout、CoordinatorLayout、CollapsingToolbarLayout、Palette、AppBarLayout、CardView、TextInputLayout、Snackbar、FloatingActionButton和NavigationView等组件的用途和使用方法,提供了多个实例和推荐的学习资源,帮助开发者更好地理解和应用这些组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家对于v4包都已经很熟悉了,现在在新建android项目时,v4包是默认导入的。
v7包需要v4包的支持,在新建android项目时,v7包默认不导入,我们需要自己导入。主要对3.0以下版本提供ActionBar支持,以及SearchView,PopupMenu等控件的支持。
我们看看v7 都有什么实用的东西,然后再具体介绍
1. recyclerview
com.android.support:recyclerview-v7:xx
可以用来代替ListView / GridView,(现ListView,GirdView,瀑布流等效果是非常容易的)。但也有不足的地方,它没有提供添加头尾的方法,对item 的监听,分割线,这个需要我们自己实现。
目前这个控件在开发中很流行,网的例子也特别多,我就不多做介绍。推荐博客 http://blog.youkuaiyun.com/lmj623565791/article/details/45059587
2 . Toolbar
android.support.v7.widget.Toolbar
ToolBar直接成了Layout中可以控制的东西是个容器,相对于过去的actionbar来说,设计与可操控性大幅提升。
使用方法:
1.引用v7 的appcompat 包 添加依赖

dependencies {  
    compile 'com.android.support:appcompat-v7:23.0.1'  
    compile 'com.android.support:design:23.1.1'  
} 

2.使用Toolbar的Activity要继承AppCompatActivity
3.需要更改主题为NoActionbBar的主题
4.在布局文件中引用Toolbar , 需引用v7包中的Toolbar , 默认的Toolbar 仅支持 API >= 21 (android 5.0)的系统

5.在代码中调用setSupportActionBar(toobar) 方法将Toolbar绑定到当前界面
推荐网站两个结合着看
http://blog.youkuaiyun.com/javazejian/article/details/50451853

http://www.jianshu.com/p/79604c3ddcae
http://blog.youkuaiyun.com/jdsjlzx/article/details/41441083/
3. TabLayout

android.support.design.widget.TabLayout 控件
封装好了tab页和指示器 ,这个非常的实用。
常用方法有

addTab(TabLayout.Tab tab, boolean setSelected)    //添加Tab名称
addTab(TabLayout.Tab tab, int position)
addTab(TabLayout.Tab tab, int position, boolean setSelected)
newTab()   //创建Tab
setOnTabSelectedListener(TabLayout.OnTabSelectedListener onTabSelectedListener)  //设置监听
setTabTextColors(int normalColor, int selectedColor)  //设置被选中Tab的文字的颜色
setSelectedTabIndicatorColor(int color)   //设置被选中Tab指示条的颜色
setSelectedTabIndicatorHeight(int height)  //设置被选中Tab指示条的高度
setTabMode(int mode)  //设置Tab的模式  MODE_FIXED/MODE_SCROLLABLE

布局中常用属性


        tabIndicatorColor://菜单下方移动的横线的颜色  
        tabSelectedTextColor ://菜单被选中之后的颜色  
        tabTextColor :// 菜单正常的颜色  
        app:tabTextAppearance :
 //添加样式,样式主要在文字前面加一个图所用,就是textAllCaps设置成false  

推荐网站
http://blog.youkuaiyun.com/chenguang79/article/details/49306339
http://www.cnblogs.com/JohnTsai/p/4715454.html

4 CoordinatorLayout
com.android.support:design.CoordinatorLayout
简单来说,CoordinatorLayout是用来协调其子view们之间动作的一个父view,而Behavior就是用来给CoordinatorLayout的子view们实现交互的,产生各种效果。
CoordinatorLayout作为“super-powered FrameLayout”基本实现两个功能:
1、作为顶层布局
2、调度协调子布局
推荐网站
http://www.bkjia.com/Androidjc/1050951.html
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0717/3196.html

5 CollapsingToolbarLayout
com.android.support:design.CollapsingToolbarLayout

提供一个可折叠的Toolbar容器,它继承至FrameLayout,对容器中的不同视图设置layout_collapseMode折叠模式,来达到不同的折叠效果

给它设置layout_scrollFlags,它可以控制包含在CollapsingToolbarLayout中的控件(如:ImageView、Toolbar)在响应layout_behavior事件时作出相应的scrollFlags滚动事件(移除屏幕或固定在屏幕顶端)。

当设置了layout_behavior的控件响应起了CollapsingToolbarLayout中的layout_scrollFlags事件时,ImageView会有视差效果的向上滚动移除屏幕,当开始折叠时CollapsingToolbarLayout的背景色(也就是Toolbar的背景色)就会变为我们设置好的背景色,Toolbar也一直会固定在最顶端。

指定childView折叠模式使用

app:layout_collapseMode
值:1.parallax 视差模式 , 需要增加 app:layout_collapseParallaxMultiplier 属性 , 属性值范围为 0.0-1.0 , 必须是float类型
2.pin 固定模式

注意事项:
1.CollapsingToolbarLayout的高度必须是固定值而且要大于Toolbar的高度 , 不能使用wrap_content , 否则不会有折叠效果
2.所有需要折叠的childView必须指定app:layout_collapseMode 属性
3.如果要添加一个自动折叠的FloatingActionBar , 必须指定锚点,锚点需为CollapsingToolbarLayout的父容器
使用parallax模式的时候,app:layout_scrollFlags的属性值不能包含enterAlwaysCollapsed或enterAlways
推荐网站 http://www.jianshu.com/p/06c0ae8d9a96
http://www.open-open.com/lib/view/open1438265746378.html
6 palette
com.android.support:palette包

 dependencies {  

    compile 'com.android.support:palette-v7:21.0.+'  
} 

色彩 获取视图里的颜色,我们通常就是拿它标题颜色,和沉浸的状态栏不同的是,它获取的是视图颜色,(沉浸)是透明的,

由于在Android设备中,对图像的处理有可能是耗时操作,因此,Palette类通过异步接口onGenerated回调的方法
来获得Bitmap的颜色值。Palette类获得的颜色值有以下几种类型:

Palette.Swatch a = palette.getVibrantSwatch();//有活力
Palette.Swatch b = palette.getDarkVibrantSwatch();//有活力 暗色
Palette.Swatch c = palette.getLightVibrantSwatch();//有活力 亮色
Palette.Swatch d = palette.getMutedSwatch();//柔和
Palette.Swatch e = palette.getDarkMutedSwatch();//柔和 暗色
Palette.Swatch f = palette.getLightMutedSwatch();//柔和 亮色

我们从以上颜色中可以获取到如下颜色值:

int color1 = a.getBodyTextColor();//内容颜色
int color2 = a.getTitleTextColor();//标题颜色
int color3 = a.getRgb();//rgb颜色

推荐网站
http://www.open-open.com/lib/view/open1434014850864.html

7 .AppBarLayout
com.android.support:design包.
AppBarLayout 是继承LinerLayout实现的一个ViewGroup容器组件,
AppBarLayout要点:

功能:
——让子View(AppBar)可以选择他们自己的滚动行为。

先说AppBarLayout这个类的使用,先看官方文档的描述:

AppBarLayout是一个实现了很多材料设计特性的垂直的LinearLayout,它能响应滑动事件。必须在它的子view上设置app:layout_scrollFlags属性或者是在代码中调用setScrollFlags()设置这个属性。这个类的特性强烈依赖于它是否是一个CoordinatorLayout的直接子view,如果不是,那么它的很多特性不能够使用。AppBarLayout需要一个具有滑动属性的兄弟节点view,并且在这个兄弟节点View中指定behavior属性为AppBarLayout.ScrollingViewBehavior的类实例,可以使用一个内置的string表示这个默认的实例@string/appbar_scrolling_view_behavior.
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.arenas.appbarlayouttest.MainActivity"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- AppBarLayout,作为CoordinatorLayout的子类 -->
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:fitsSystemWindows="true"
        android:layout_height="wrap_content"
        >
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"

            <!--设置app:layout_scrollFlags=”scroll|enterAlways” 属性  -->
            />
    </android.support.design.widget.AppBarLayout>
<!--NestedScrollView 是兄弟节点,或者兄弟节点的子view 一定要可以滚动 -->
    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
        <!-- 该属性必须设置 -->
        <TextView
            android:layout_width="match_parent"
            android:layout_margin="20dp"
            android:text="text"
            android:layout_height="wrap_content"/>
    </android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>

注意:

兄弟节点的app:layout_behavior=”@string/appbar_scrolling_view_behavior”属性很重要;

AppBarLayout子view的app:layout_scrollFlags属性很重要,其值有三个:

scroll: 所有想滚动出屏幕的view都需要设置这个flag(所以,这里的toolbar设置了),没有设置这个flag的view将被固定在屏幕顶部。

enterAlways: 这个flag让任意向下的滚动都会导致该view变为可见(向下滚动,toolbar又出现),启用”快速返回”模式。

enterAlwaysCollapsed: 当你的视图已经设置minHeight属性又使用此标志时,你的视图只会在最小高度处进入,只有当滚动视图到达顶部时才扩大到完整高度。

exitUntilCollapsed: 在滚动过程中,只有当视图折叠到最小高度的时候,它才退出屏幕。

注意AppBarLayout的兄弟节点(或兄弟节点的子view)一定要是可以滚动的View/ViewGroup,如:NestedScrollView,RecycleView;(据说ListView不行,木有测试了)
推荐网站 http://www.jianshu.com/p/d159f0176576

8 CardView
android.support.v7.widget.CardView
CardView 属于Support v7 里面的新的Widget. 继承于FrameLayout,
UI显示主要包括
1.边框圆角
2.有阴影Shadow
用来突出个性,比如展览,相册等。
http://blog.youkuaiyun.com/birdsaction/article/details/45197499
3 有点击效果
当使用 CardView 的场合是作为列表中的一个 Item 且直接单击 Item 有相应的操作,那么就有必要加上视觉反馈来告诉用户这个 Card 是可点击的。
直接给 CardView 加上 android:foreground=”?attr/selectableItemBackground” 这个属性会在 Lollipop 上自动加上 Ripple 效果,在旧版本则是一个变深/变亮的效果。
http://blog.youkuaiyun.com/jdsjlzx/article/details/51243716

dependencies {
    compile 'com.android.support:cardview-v7:21.+'
}

9 . TextInputLayout
com.android.support:design包.
TextInputLayout 作为一个父容器,包装了 EditText。
通常单独使用 EditText 时,使用 hint 定义的提示信息会随着用户输入的第一个数据开始,就自动隐藏了;而使用用 TextInputLayout 包裹的 EditText 时,就不会出现这种现象。同时也可以给 EditText 增加监听事件。
注意:
android:hint需要设置在EditText身上
改变hint的颜色需要更改主题的 颜色值
推荐网站
http://blog.youkuaiyun.com/antimage08/article/details/50366696
http://www.jcodecraeer.com/a/basictutorial/2015/0821/3338.html

  1. Snackbar
    介于Toast和AlertDialog之间的轻量级控件
    跟Toast不同的地方是SnackBar允许用户向右滑动消除它,同时,也允许在SnackBar中设定一个Action,当用户点击了SnackBar里面的按钮的时候,可以进行一些操作,所以,功能绝对是很强大的。

    SnackBar的构造:
    // 参数分别是父容器,提示信息,持续时间

public static Snackbar make(@NonNull View view, @NonNull CharSequence text,@Duration int duration)

常用方法

// 用于给SnackBar设定一个Action,点击之后会回调OnclickListener中的Onclick方法
public Snackbar setAction(CharSequence text, final View.OnClickListener listener)
// 用于设定Action的字体颜色
public Snackbar setActionTextColor(@ColorInt int color)
// 设定提示的字体
public Snackbar setText(@NonNull CharSequence message)
// 展示SnackBar
public void show()
// 清除SnackBar
public void dismiss()
// 设置回调,比如OnDismissed或者OnShown
public Snackbar setCallback(Callback callback)

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0714/3185.html

11 .FloatingActionButton
com.android.support:design包
FloatingActionButton继承自ImageView所以像setOnClickListener、setImageDrawable这些都是一样的。

FloatingActionButton默认的底色是theme中的colorAccent,想要修改颜色就要这样:

app:backgroundTint="#56abe4"

点击颜色:

app:backgroundTint="#56abe4"

FloatingActionButton的阴影效果怎么修

 app:elevation="6dp"//显示的阴影大小
      app:pressedTranslationZ="12dp"//点击时的阴影大小

推荐网站 http://blog.youkuaiyun.com/lmj623565791/article/details/46678867

12.NavigationViewcom
android.support:design包.
 侧滑菜单在我们开发中非常常用,例如QQ等应用,在没有这个NavigationView之前,我们考虑的是通过FrameLayout+DrawerLayout实现,现在有了这个控件,我们就不在需要再考虑那么多了。有了NavigationView之后,我们只需要写一下布局就可以实现了,而且非常符合Google的MD设计风格,效果也非常好,并且向下兼容到2.1,
 具体使用就不多说了。看我给大家推荐网站。
 博客里也写的有
 http://blog.youkuaiyun.com/lmj623565791/article/details/46405409
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值