Support Library 25.0.0 更新講解

Support Library 25.0.0

伴隨著Android 7.1(API 25)的的發(fā)布,一系列相關的開發(fā)工具與套件也一起更新了,包括Android Studio 2.2.2與Support Library 25.0.0。其中AS的更新包括日常的bug修復與性能提升,還有對7.1的支持。而Support包的更新如下:

Important changes

  • ContextCompat的構造方法變?yōu)閜rotected
  • ActivityCompat的構造方法變?yōu)閜rotected
  • ActivityCompatgetReferer(Activity)方法變?yōu)閟tatic
  • 刪除方法android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V)
  • 刪除方法android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object)
  • 刪除方法android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object)
  • 刪除方法android.support.v7.widget.Space,應當使用android.support.v4.widget.Space.(作者注:在布局需要空白View時很高效)

New APIs

  • 新增android.support.design.widget.BottomNavigationView類(更新的主角),實現(xiàn)了Material Design中的bottom navigation設計樣式,就是我們常見的底部tab欄
設計標準
  • 新增android.support.v13.view.inputmethod包,其中的相關類實現(xiàn)了在API 13時引入的android.view.inputmethod.InputConnection特性

  • 新增android.v7.widget.RecyclerView.DividerItemDecoration類,提供RecyclerView分割線的一種基礎實現(xiàn),目前只支持LinearLayoutManager的橫向和縱向布局

  • 將API 24中引入的自定義Notification布局的相關類加入到兼容包中,即DecoratedCustomViewStyleDecoratedMediaCustomViewStyle

功能預覽

Screenshot

作者第一時間嘗試了其中的部分新API,交互效果真的很棒,建議運行demo查看細節(jié)!下面大概說下使用方式:
首先在布局中引入BottomNavigationView,

<android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@color/colorPrimary"
        design:itemIconTint="@color/item_text_color"
        design:itemTextColor="@color/item_text_color"
        design:menu="@menu/menu_navigation"/>

可以看到使用了design的三個自定義attr,menu是用來指定tab欄中的各個tab的,官方說tab數(shù)量應該介于3個到5個之間,所以這里以3個item為例,測試menu如下

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/item1"
        android:checked="true"
        android:icon="@drawable/ic_mail_outline_black_24dp"
        android:title="Message"/>

    <item
        android:id="@+id/item2"
        android:icon="@drawable/ic_call_black_24dp"
        android:title="Call"/>

    <item
        android:id="@+id/item3"
        android:icon="@drawable/ic_person_black_24dp"
        android:title="Contact"/>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#fff" android:state_checked="true"/>
    <item android:color="#fff" android:state_pressed="true"/>
    <item android:color="#ccc"/>
</selector>

itemIconTint是為tab里的icon著色,這里使用了跟文字相同的顏色效果。代碼中就比較簡單了:

navigationView = (BottomNavigationView) findViewById(R.id.navigation);
navigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
     @Override
     public boolean onNavigationItemSelected(@NonNull MenuItem item) {
           Toast.makeText(MainActivity.this, item.getTitle(), Toast.LENGTH_SHORT).show();
           return false;
     }
});

而上方的應用列表則使用RecyclerView,并搭配了新的divider類:

mRecyclerView = (RecyclerView) findViewById(R.id.recyclerview);
mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(mLayoutManager);
mAdapter = new AppInfoAdapter(this, getAppInfo(), R.layout.item_app_info);
mRecyclerView.setAdapter(mAdapter);
// New in recyclerview-25.0.0
mRecyclerView.addItemDecoration(new DividerItemDecoration(this, mLayoutManager.getOrientation()));

調用DividerItemDecoration中的setDrawable(@NonNull Drawable drawable)方法是可以替換divider樣式的。

結語

介紹就到這里了,示例demo的代碼在這里(github),歡迎大家下載體驗。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,351評論 25 708
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,899評論 2 45
  • 內容抽屜菜單ListViewWebViewSwitchButton按鈕點贊按鈕進度條TabLayout圖標下拉刷新...
    皇小弟閱讀 47,183評論 22 665
  • 最近工作挺忙的,看電影上癮,費去太多時。 以上當然都只是借口,應該是過了寫作的熱情期,每次提手都不知道說什么,也擔...
    小粥哥閱讀 711評論 3 3
  • p2p網(wǎng)貸理財平臺排名 p2p網(wǎng)貸理財平臺排名 p2p網(wǎng)貸理財平臺排名
    和匾攬08153閱讀 449評論 0 0

友情鏈接更多精彩內容