计算机知识

当前位置:澳门新葡萄京 > 计算机知识 > 而Support包的更新如下

而Support包的更新如下

来源:http://www.hhmtch.com 作者:澳门新葡萄京 时间:2020-03-16 20:13

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

  • ContextCompat的构造方法变为protected
  • ActivityCompat的构造方法变为protected
  • ActivityCompatgetReferer方法变为static
  • 删除方法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
  • 删除方法android.support.v7.widget.Space,应当使用android.support.v4.widget.Space.(作者注:在布局需要空白View时很高效)
  • 新增android.support.design.widget.BottomNavigationView类,实现了Material Design中的bottom navigation设计样式,就是我们常见的底部tab栏

图片 1设计标准

  • 新增android.support.v13.view.inputmethod包,其中的相关类实现了在API 13时引入的android.view.inputmethod.InputConnection特性

  • 新增android.v7.widget.RecyclerView.DividerItemDecoration类,提供RecyclerView分割线的一种基础实现,目前只支持LinearLayoutManager的横向和纵向布局

  • 将API 24中引入的自定义Notification布局的相关类加入到兼容包中,即DecoratedCustomViewStyleDecoratedMediaCustomViewStyle

图片 2Screenshot

作者第一时间尝试了其中的部分新API,交互效果真的很棒,建议运行demo查看细节!下面大概说下使用方式:首先在布局中引入BottomNavigationView,

<android.support.design.widget.BottomNavigationView android: 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:andro> <item android: android:checked="true" android:icon="@drawable/ic_mail_outline_black_24dp" android:title="Message"/> <item android: android:icon="@drawable/ic_call_black_24dp" android:title="Call"/> <item android: android:icon="@drawable/ic_person_black_24dp" android:title="Contact"/></menu>

<?xml version="1.0" encoding="utf-8"?><selector xmlns:andro> <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;mRecyclerView.setLayoutManager(mLayoutManager);mAdapter = new AppInfoAdapter(this, getAppInfo(), R.layout.item_app_info);mRecyclerView.setAdapter;// New in recyclerview-25.0.0mRecyclerView.addItemDecoration(new DividerItemDecoration(this, mLayoutManager.getOrientation;

调用DividerItemDecoration中的setDrawable(@NonNull Drawable drawable)方法是可以替换divider样式的。

介绍就到这里了,示例demo的代码在这里,欢迎大家下载体验。

本文由澳门新葡萄京发布于计算机知识,转载请注明出处:而Support包的更新如下

关键词: Support Library

上一篇:永久更新地址

下一篇:没有了