();
69 | map.put("img", Config.EXPANDABLE_LISTVIEW_IMG[i]);
70 | map.put("txt", Config.EXPANDABLE_LISTVIEW_TXT[i]);
71 | list.add(map);
72 | }
73 | adapter = new ExpandableListAdapter(this, list, textArray);
74 | expandableListView.setAdapter(adapter);
75 |
76 | }
77 |
78 |
79 | private void setListener() {
80 | // 给一级菜单的选项设置监听
81 | expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
82 |
83 | @Override
84 | public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
85 | return false;
86 | }
87 | });
88 |
89 | // 给一级菜单下面的二级菜单的选项设置监听接口
90 | expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
91 |
92 | @Override
93 | public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
94 | ToastUtils.showToast("你点击的是" + textArray[groupPosition][childPosition]);
95 |
96 | return false;
97 | }
98 | });
99 |
100 | // 给返回按钮设置点击事件
101 | backImage.setOnClickListener(new View.OnClickListener() {
102 | @Override
103 | public void onClick(View v) {
104 | finish();
105 | }
106 | });
107 |
108 |
109 | }
110 |
111 |
112 | }
113 |
--------------------------------------------------------------------------------
/demo/src/main/java/net/anumbrella/menusummary/activity/ListGridViewActivity.java:
--------------------------------------------------------------------------------
1 | package net.anumbrella.menusummary.activity;
2 |
3 | import android.os.Bundle;
4 | import android.support.annotation.Nullable;
5 | import android.support.v4.view.ViewPager;
6 | import android.support.v7.app.AppCompatActivity;
7 | import android.view.LayoutInflater;
8 | import android.view.View;
9 | import android.widget.LinearLayout;
10 | import android.widget.ScrollView;
11 | import android.widget.TextView;
12 |
13 | import net.anumbrella.menusummary.R;
14 | import net.anumbrella.menusummary.adapter.DetailAdapter;
15 | import net.anumbrella.menusummary.config.Config;
16 |
17 | import butterknife.BindView;
18 | import butterknife.ButterKnife;
19 |
20 | /**
21 | * author:anumbrella
22 | * Date:17/2/23 下午1:21
23 | */
24 |
25 | public class ListGridViewActivity extends AppCompatActivity {
26 |
27 |
28 | private String[] list;
29 |
30 | private DetailAdapter detailAdapter;
31 |
32 | private View[] views;
33 |
34 | private TextView[] textList;
35 |
36 | private LayoutInflater inflater;
37 |
38 |
39 | @BindView(R.id.list_scrollView)
40 | ScrollView scrollView;
41 |
42 |
43 | @BindView(R.id.detail_layout)
44 | ViewPager viewPager;
45 |
46 | /**
47 | * 默认的ViewPager选中的项
48 | */
49 | private int currentItem = 0;
50 |
51 |
52 | @Override
53 | protected void onCreate(@Nullable Bundle savedInstanceState) {
54 | super.onCreate(savedInstanceState);
55 | setContentView(R.layout.activity_listgridview_layout);
56 | ButterKnife.bind(this);
57 | inflater = LayoutInflater.from(this);
58 | initList();
59 | initViewPager();
60 | }
61 |
62 |
63 | private void initList() {
64 | list = Config.list;
65 | views = new View[list.length];
66 | textList = new TextView[list.length];
67 | LinearLayout listLayout = (LinearLayout) findViewById(R.id.list);
68 |
69 | for (int i = 0; i < list.length; i++) {
70 | View view = inflater.inflate(R.layout.list_item_layout, null);
71 | // 给每个View设定唯一标识
72 | view.setId(i);
73 | // 给每个view添加点击监控事件
74 | view.setOnClickListener(listItemClickListener);
75 | // 获取到左侧栏的的TextView的组件
76 | TextView textView = (TextView) view.findViewById(R.id.textView);
77 | textView.setText(list[i]);
78 | listLayout.addView(view);
79 | // 传入的是地址不是复制的值
80 | textList[i] = textView;
81 | views[i] = view;
82 | }
83 | // 开始默认是第一个被选中的情况
84 | changeTextColor(0);
85 | }
86 |
87 | private void initViewPager() {
88 |
89 | // 由于使用了支持包所以最终必须确保所有的导入包都是来自支持包
90 | detailAdapter = new DetailAdapter(getSupportFragmentManager(), list);
91 | viewPager.setAdapter(detailAdapter);
92 | // 为ViewPager设置页面变化的监控
93 | viewPager.setOnPageChangeListener(onPageChangeListener);
94 | }
95 |
96 | /**
97 | * ViewPager监控事件处理 监听ViewPager选项卡变化事的事件
98 | */
99 | private ViewPager.OnPageChangeListener onPageChangeListener = new ViewPager.OnPageChangeListener() {
100 |
101 | @Override
102 | public void onPageSelected(int index) {
103 | if (viewPager.getCurrentItem() != index) {
104 | viewPager.setCurrentItem(index);
105 | }
106 | // 通过ViewPager监听点击字体颜色和背景的改变
107 | if (currentItem != index) {
108 | changeTextColor(index);
109 | changeTextLocation(index);
110 | }
111 | currentItem = index;
112 |
113 | }
114 |
115 | @Override
116 | public void onPageScrolled(int arg0, float arg1, int arg2) {
117 | }
118 |
119 | @Override
120 | public void onPageScrollStateChanged(int arg0) {
121 | }
122 | };
123 |
124 |
125 | /**
126 | * 模拟点击时TextView文本字体颜色的改变情况
127 | *
128 | * @param id
129 | */
130 | private void changeTextColor(int id) {
131 | for (int i = 0; i < list.length; i++) {
132 | if (id != i) {
133 | textList[i].setBackgroundColor(0x00000000);
134 | textList[i].setTextColor(0xFF000000);
135 | }
136 | }
137 | textList[id].setBackgroundColor(0xFFFFFFFF);
138 | textList[id].setTextColor(0xFFFF5D5E);
139 |
140 | }
141 |
142 |
143 | /**
144 | * view的点击事件,
145 | *
146 | * 通过点击view来是ViewPager的状态发生改变,同时ViewPager监控自己的改变 可以用来处理一些事件的情况
147 | */
148 | private View.OnClickListener listItemClickListener = new View.OnClickListener() {
149 |
150 | @Override
151 | public void onClick(View v) {
152 | viewPager.setCurrentItem(v.getId());
153 | }
154 | };
155 |
156 |
157 | /**
158 | * 改变左侧栏选中项的位置
159 | *
160 | * @param clickPosition
161 | */
162 | private void changeTextLocation(int clickPosition) {
163 | // 获得点击的view视图距离屏幕顶部的距离
164 | int y = (views[clickPosition].getTop());
165 | // 如果滑动条可以滑动的情况下就把点击的视图移动到顶部
166 | scrollView.smoothScrollTo(0, y);
167 |
168 | }
169 |
170 |
171 | }
172 |
--------------------------------------------------------------------------------
/demo/src/main/java/net/anumbrella/menusummary/activity/ListListViewActivity.java:
--------------------------------------------------------------------------------
1 | package net.anumbrella.menusummary.activity;
2 |
3 | import android.os.Bundle;
4 | import android.support.annotation.Nullable;
5 | import android.support.v7.app.AppCompatActivity;
6 | import android.view.View;
7 | import android.widget.AdapterView;
8 | import android.widget.ListView;
9 |
10 | import net.anumbrella.menusummary.R;
11 | import net.anumbrella.menusummary.adapter.ClassifyMainAdapter;
12 | import net.anumbrella.menusummary.adapter.ClassifyMoreAdapter;
13 | import net.anumbrella.menusummary.config.Config;
14 | import net.anumbrella.menusummary.utils.ToastUtils;
15 |
16 | import java.util.ArrayList;
17 | import java.util.HashMap;
18 | import java.util.List;
19 | import java.util.Map;
20 |
21 | import butterknife.BindView;
22 | import butterknife.ButterKnife;
23 |
24 | /**
25 | * author:anumbrella
26 | * Date:17/2/23 下午1:20
27 | */
28 |
29 | public class ListListViewActivity extends AppCompatActivity {
30 |
31 | private ClassifyMainAdapter classifyMainAdapter;
32 |
33 | private ClassifyMoreAdapter classifyMoreAdapter;
34 |
35 | private List