界面:
整体是一个ListView用来显示联系人列表,右侧是一个侧边栏,用来显示联系人姓名前的首字母,也就是#,A,B,C...Z
布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_gravity="center"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@color/windows_color">
<ListView
android:id="@+id/lvContact"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none"
android:dividerHeight="0dp"
android:divider="#00000000"
android:listSelector="#00000000"
android:cacheColorHint="#00000000" />
</LinearLayout>
<com.example.wechat.widget.SideBar
android:id="@+id/sideBar"
android:layout_height="wrap_content"
android:layout_width="30dp"
android:layout_marginTop="30dp"
android:layout_gravity="right|center_vertical" />
<!-- android:background="@drawable/mm_text_bg_trans" -->
</FrameLayout>
</LinearLayout>
侧边栏用了一个自定义的控件SideBar,这个后面再说。
还有一个列表头:
layout_head = ctx.getLayoutInflater().inflate(R.layout.layout_head_friend, null);界面预览:
lvContact.addHeaderView(layout_head);
布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include android:id="@+id/layout_search" layout="@layout/layout_head_search"/>
<LinearLayout
android:id="@+id/layout_addfriend"
style="@style/MMListItem"
android:layout_height="55.0dip"
android:background="@drawable/setting_item_selector"
android:paddingLeft="15dip">
<ImageView
android:layout_width="40dip"
android:layout_height="40dip"
android:src="@drawable/icon_addfriend" />
<TextView
style="@style/MMFontTitleInList"
android:textColor="@color/black"
android:text="@string/recommended_friends"
android:layout_marginLeft="13dp"
android:singleLine="true" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/black2" />
<LinearLayout
android:id="@+id/layout_group"
style="@style/MMListItem"
android:layout_height="55.0dip"
android:background="@drawable/setting_item_selector"
android:paddingLeft="15dip">
<ImageView
android:layout_width="40dip"
android:layout_height="40dip"
android:src="@drawable/icon_qunliao" />
<TextView
style="@style/MMFontTitleInList"
android:textColor="@color/black"
android:text="@string/group_chats"
android:layout_marginLeft="10dp"
android:singleLine="true" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/black2" />
<LinearLayout
android:id="@+id/layout_public"
style="@style/MMListItem"
android:layout_height="55.0dip"
android:background="@drawable/setting_item_selector"
android:paddingLeft="15dip">
<ImageView
android:layout_width="40dip"
android:layout_height="40dip"
android:src="@drawable/icon_public" />
<TextView
style="@style/MMFontTitleInList"
android:textColor="@color/black"
android:text="@string/official_accounts"
android:layout_marginLeft="10dp"
android:singleLine="true" />
</LinearLayout>
</LinearLayout>
分别涉及到:搜索好友及公众号 : SearchActivity
添加好友: NewFriendsListActivity群聊:GroupListActivity公众号:PublishUserListActivity
联系人列表适配器:ContactAdapter。