android成神之路Android知识Android技术知识

Support Library 25.0.0 更新讲解

2016-10-20  本文已影响6741人  FullStack

Support Library 25.0.0

伴随着Android 7.1(API 25)的的发布,一系列相关的开发工具与套件也一起更新了,包括Android Studio 2.2.2与Support Library 25.0.0。其中AS的更新包括日常的bug修复与性能提升,还有对7.1的支持。而Support包的更新如下:

Important changes

New APIs

设计标准

功能预览

Screenshot

作者第一时间尝试了其中的部分新API,交互效果真的很棒,建议运行demo查看细节!下面大概说下使用方式:
首先在布局中引入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数量应该介于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),欢迎大家下载体验。

上一篇下一篇

猜你喜欢

热点阅读