android 开发技巧汇总

1.添加ripple效果

ripple效果是L才出现的,如果想再L以下的机器上实现这种效果,可以用自定义view实现,博客参考http://blog.csdn.net/singwhatiwanna/article/details/42614953

还可以用selector实现类似效果

<?xml version="1.0" encoding="utf-8"?>
<!--drawable/btn_feed_action.xml-->
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:enterFadeDuration="200" android:exitFadeDuration="200">
    <item android:state_pressed="false">
        <shape android:shape="oval">
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>
    <item android:state_pressed="true">
        <shape android:shape="oval">
            <solid android:color="#6621425d" />
        </shape>
    </item>
</selector>

enterFadeDuration 此属性在Drawable具有多种状态的时候,可以定义它展示前的淡入淡出效果

2.RecyclerView滑动卡顿解决方案

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0209/2452.html

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this) {
    @Override
    protected int getExtraLayoutSpace(RecyclerView.State state) {
        return 300;
    }
};

只有LinearLayoutManager 有这个方法。

3.获取通讯录联系人 根据拼音排序 获取拼音首字母

5.0以下 可以根据sort_key 这个字段进行排序,5.0以上根据phonebook_label来排序

4..当使用CoordinatorLayout 的使用,如果需要展示列表,要使用RecyclerView,如果使用ListView,当滑动ListView的时候,顶部的布局并不能跟着移动(AppBarLayout)。解决方法如下:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
     listView.setNestedScrollingEnabled(true);
}
不过只有在21及以上才会起作用,所以还是乖乖的用RecyclerView。
参考文章:http://stackoverflow.com/questions/30612453/scrollingviewbehavior-for-listview

你可能感兴趣的:(android 开发技巧汇总)