关于android中v7包(appcompat)的说明

大家对于v4包都已经很熟悉了,现在在新建android项目时,v4包是默认导入的。v7包出来没多长时间,用的人也不多,主要对3.0以下版本提供ActionBar支持,以及SearchView,PopupMenu等控件的支持。因为一些开源框架已经实现对3.0以下版本ActionBar的支持,所以v7包的使用意义也不是很大。既然谷歌官方提供了这个功能,也很有必要学习一下。现在根据自己在官方文档上的学习和实践,现总结如下:

1.v7包需要v4包的支持,在新建android项目时,v7包默认不导入,v4默认导入。v7包在sdk的E:\android-sdk-windows\extras\android\support路径下。

2.v7中提供的jar包只有类文件,没有资源文件,因此,需要将android-support-v7-appcompat作为库导入到eclipse中并引用到项目中。该库在sdk的路径为E:\android-sdk-windows\extras\android\support\v7\appcompat。

3.新建activity不再继承自Activity,而是继承自ActionBarActivity,对ActionBar的操作也有一定改变。此外还必须为新建的activity添加v7资源库中的主题,例如:android:theme="@style/Theme.AppCompat.Light",不添加的话会报错。

4.使用SearchView等v7提供的类,在导入包的时候一定要选择v7包,不要选择sdk自带的。

5.在menu中添加SearchView控件时,要严格按照如下格式,否则会报错。注意加红的地方

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:yourapp="http://schemas.android.com/apk/res-auto">


    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"/>
    <item
        android:id="@+id/search_view"
        android:icon="@drawable/ic_launcher"
        android:orderInCategory="0"
        yourapp:showAsAction="ifRoom|collapseActionView"
        yourapp:actionViewClass="android.support.v7.widget.SearchView"
        android:title="search"/>


</menu>

你可能感兴趣的:(android,searchv,v7包)