使用ExpandableListView实现一个时光轴

在许多App上都能看到时光轴的效果,比如携程等等,那么我们今天就利用ExpandableListView来实现一个时光轴效果,先来看看效果图:

效果还是挺简单的,这里我们主要是采用ExpandableListView来实现,关于ExpandableListView的详细使用参见(android开发之ExpandableListView的使用,实现类似QQ好友列表),我们这里主要介绍这个效果的实现:

先来看看主布局文件:

<RelativeLayout xmlns:android=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="match_parent" ><TextViewandroid:id="@+id/title_p"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_margin="12dp"android:gravity="center"android:text="2015年11月"android:textSize="18sp" /><Viewandroid:id="@+id/hor_div"android:layout_width="match_parent"android:layout_height="1dp"android:layout_below="@id/title_p"android:background="#9F79EE" /><Viewandroid:id="@+id/ver_div"android:layout_width="1dp"android:layout_height="match_parent"android:layout_below="@id/hor_div"android:layout_marginLeft="70dp"android:background="#9F79EE" /><TextViewandroid:id="@+id/title_c"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/hor_div"android:layout_marginLeft="60dp"android:paddingBottom="12dp"android:paddingLeft="18dp"android:paddingTop="12dp"android:text="时光轴"android:textSize="24sp" /><ExpandableListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@id/title_c"android:layout_marginLeft="60dp"android:background="@null"android:clickable="false"android:divider="@null" ></ExpandableListView></RelativeLayout>两条分割线用View来做,整体不难,不多说,看看MainActivity

public class MainActivity extends Activity {private List<TimeLineBean> list;private ExpandableListView lv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);initData();initView();}private void initView() {lv = (ExpandableListView) this.findViewById(R.id.lv);lv.setAdapter(new MyAdapter(MainActivity.this, list));for (int i = 0; i < list.size(); i++) {lv.expandGroup(i);}lv.setGroupIndicator(null);lv.setOnGroupClickListener(new OnGroupClickListener() {@Overridepublic boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {return true;}});}private void initData() {list = new ArrayList<TimeLineBean>();List<String> things = new ArrayList<String>();things.add("六王毕,四海一;");things.add("蜀山兀,阿房出。");things.add("覆压三百余里,隔离天日。");list.add(new TimeLineBean("11月24日", things));things = new ArrayList<String>();things.add("骊山北构而西折,");things.add("直走咸阳。");things.add("二川溶溶,流入宫墙。");list.add(new TimeLineBean("11月23日", things));things = new ArrayList<String>();things.add("五步一楼,十步一阁;");things.add("廊腰缦回,");list.add(new TimeLineBean("11月22日", things));things = new ArrayList<String>();things.add("檐牙高啄;");things.add("各抱地势,钩心斗角。");things.add("盘盘焉,囷囷焉,蜂房水涡,");things.add("矗不知乎几千万落!");list.add(new TimeLineBean("11月21日", things));things = new ArrayList<String>();things.add("长桥卧波,未云何龙?");things.add("複道行空,不霁何虹?");things.add("高低冥迷,不知西东。");list.add(new TimeLineBean("11月20日", things));things = new ArrayList<String>();things.add("歌台暖响,");things.add("春光融融;");list.add(new TimeLineBean("11月19日", things));things = new ArrayList<String>();things.add("舞殿冷袖,");things.add("风雨凄凄。");things.add("一日之内,一宫之间,");things.add("而气候不齐。");list.add(new TimeLineBean("11月18日", things));}}在MainActivity中我们先初始化模拟数据,然后初始化View,初始化View的过程中,通过一个for循环让所有的group展开,然后再屏蔽掉group的点击事件,好了,再来看看Adapter:

我们大都接受的是正面的教育,

使用ExpandableListView实现一个时光轴

相关文章:

你感兴趣的文章:

标签云: