66import android .support .v4 .view .GravityCompat ;
77import android .support .v4 .widget .DrawerLayout ;
88import android .support .v7 .app .ActionBarDrawerToggle ;
9+ import android .support .v7 .widget .LinearLayoutManager ;
910import android .view .Menu ;
1011import android .view .MenuItem ;
1112import android .view .View ;
1213
1314import org .yh .library .YHFragment ;
15+ import org .yh .library .adapter .I_YHItemClickListener ;
16+ import org .yh .library .okhttp .YHRequestFactory ;
17+ import org .yh .library .okhttp .callback .HttpCallBack ;
18+ import org .yh .library .ui .BindView ;
19+ import org .yh .library .ui .YHViewInject ;
20+ import org .yh .library .utils .Constants ;
21+ import org .yh .library .utils .JsonUitl ;
22+ import org .yh .library .utils .LogUtils ;
23+ import org .yh .library .utils .StringUtils ;
24+ import org .yh .library .view .YHRecyclerView ;
25+ import org .yh .library .view .yhrecyclerview .ProgressStyle ;
26+ import org .yh .yhframe .adapter .rv .MyRecyclerAdatpter ;
1427import org .yh .yhframe .base .BaseActiciy ;
28+ import org .yh .yhframe .bean .JsonMenuModel ;
29+ import org .yh .yhframe .bean .MenuModel ;
30+
31+ import java .util .ArrayList ;
32+
33+ import static org .yh .yhframe .app .MyApplication .HOME_HOST ;
34+
1535
1636public class DemoActivity extends BaseActiciy
17- implements NavigationView .OnNavigationItemSelectedListener
37+ implements NavigationView .OnNavigationItemSelectedListener , I_YHItemClickListener < MenuModel >
1838{
19- View view ;
2039 YHFragment oneFragment = null ;
2140 YHFragment twoFragment = null ;
2241 YHFragment threeFragment = null ;
2342 YHFragment fourFragment = null ;
2443 DrawerLayout drawer = null ;
2544
45+ /**
46+ * 服务器端一共多少页
47+ */
48+ private static int TOTAL_PAGE = 2 ;//假设10页
49+ @ BindView (id = R .id .nav_view1 )
50+ private YHRecyclerView mRecyclerView ;
51+ private MyRecyclerAdatpter mAdapter ;
52+ private int page = 0 ;
53+ ArrayList <MenuModel > data = null ;
2654 @ Override
2755 public void setRootView ()
2856 {
2957 setContentView (R .layout .activity_demo );
30- view = findViewById (R .id .drawer_layout );
3158 }
3259
3360 @ Override
@@ -38,8 +65,62 @@ public void initData()
3865 twoFragment = new TwoFragment ();
3966 threeFragment = new ThreeFragment ();
4067 fourFragment = new FourFragment ();
68+ data = new ArrayList <>();
4169 }
70+ private void getDataByLine ()
71+ {
72+ // YHLoadingBar.make(empty_layout).show();
73+ YHRequestFactory .getRequestManger ().get (HOME_HOST , "api/menu/menulist?page=" + page , null , new HttpCallBack ()
74+ {
75+ @ Override
76+ public void onSuccess (String t )
77+ {
78+ super .onSuccess (t );
79+ JsonMenuModel jsonMenuModel = JsonUitl .stringToTObject (t , JsonMenuModel .class );
80+ TOTAL_PAGE = jsonMenuModel .getTotalPage ();
81+ String resultCode = jsonMenuModel .getResultCode ();
82+ if ("0" .equals (resultCode ))
83+ {
84+ if (StringUtils .isEmpty (jsonMenuModel .getDatas ()))
85+ {
86+ } else
87+ {
88+ data .addAll (jsonMenuModel .getDatas ());
89+ mAdapter .setDatas (data );
90+ }
91+ } else
92+ {
93+ }
94+ //刷新完毕
95+ mRecyclerView .refreshComplete ();
96+ }
97+
98+ @ Override
99+ public void onFailure (int errorNo , String strMsg )
100+ {
101+ super .onFailure (errorNo , strMsg );
102+ LogUtils .e (TAG , strMsg );
103+ mAdapter .getDatas ().clear ();//必须在数据更新前清空,不能太早
104+ //刷新完毕
105+ mRecyclerView .refreshComplete ();
106+ mAdapter .notifyDataSetChanged ();
107+ }
42108
109+ @ Override
110+ public void onFinish ()
111+ {
112+ super .onFinish ();
113+ // YHLoadingBar.cancel(empty_layout);
114+ Constants .Config .yhDBManager .insertAll (mAdapter .getDatas ());
115+ // QueryBuilder<MenuModel> qb = new QueryBuilder<>(
116+ // MenuModel.class).where(MenuModel.COL_NAME + " =? ",
117+ // new Object[]
118+ // {"冬菇蒸滑鸡饭(不辣)"}).orderBy(MenuModel.COL_MENUID);
119+ // ArrayList<MenuModel> x =Constants.Config.yhDBManager.getDb().query(qb);
120+ // LogUtils.e(TAG,"fadfadsfa:" + x + "");
121+ }
122+ }, TAG );
123+ }
43124 @ Override
44125 public void initWidget ()
45126 {
@@ -56,11 +137,15 @@ public void onClick(View view)
56137 }
57138 });
58139
59- drawer = bindView (R .id .drawer_layout );
60140 drawer = bindView (R .id .drawer_layout );
61141 ActionBarDrawerToggle toggle = new ActionBarDrawerToggle (
62142 this , drawer , toolbar , R .string .navigation_drawer_open , R .string .navigation_drawer_close );
63143 drawer .addDrawerListener (toggle );
144+ //禁止手势滑动
145+ drawer .setDrawerLockMode (DrawerLayout .LOCK_MODE_LOCKED_CLOSED );
146+ //打开手势滑动
147+ //drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
148+
64149 toggle .syncState ();
65150
66151 //导航图标
@@ -69,12 +154,84 @@ public void onClick(View view)
69154 NavigationView navigationView =bindView (R .id .nav_view );
70155 navigationView .setNavigationItemSelectedListener (this );
71156 navigationView .getMenu ().getItem (0 ).setChecked (true );
157+
158+ // NavigationView navigationView1 =bindView(R.id.nav_view1);
159+ // navigationView1.setNavigationItemSelectedListener(this);
160+ // navigationView1.getMenu().getItem(0).setChecked(true);
161+
162+
163+ //lineartlayout
164+ LinearLayoutManager layoutManager = new LinearLayoutManager (this );
165+ layoutManager .setOrientation (LinearLayoutManager .VERTICAL );
166+
167+
168+ //CardView
169+ // 两列
170+ //int spanCount = 3;
171+ //GridLayoutManager layoutManager = new GridLayoutManager(this,spanCount);
172+ //layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
173+
174+
175+ //StaggeredGridLayoutManager 不能加分割线
176+ // StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(spanCount,
177+ // StaggeredGridLayoutManager.VERTICAL);
178+
179+
180+ //分割线为LinearLayoutManager
181+ mRecyclerView .addItemDecoration (mRecyclerView .new YHItemDecoration ());//分割线
182+ mRecyclerView .setLayoutManager (layoutManager );
183+ // mRecyclerView.setEmptyView(empty_layout);//没有数据的空布局
184+
185+ mRecyclerView .setRefreshProgressStyle (ProgressStyle .BallPulseRise );//可以自定义下拉刷新的样式
186+ mRecyclerView .setLoadingMoreProgressStyle (ProgressStyle .SquareSpin );//可以自定义上拉加载的样式
187+ mRecyclerView .setFootViewText (getString (R .string .listview_loading ), "我是有底线的。" );
188+ mRecyclerView .setArrowImageView (R .mipmap .iconfont_downgrey );//箭头
189+ // View header = LayoutInflater.from(this).inflate(R.layout.recyclerview_header, (ViewGroup)findViewById(android.R.id.content),false);
190+ // mRecyclerView.addHeaderView(header);
191+ // View header1 = LayoutInflater.from(this).inflate(R.layout.recyclerview_header, (ViewGroup)findViewById(android.R.id.content),false);
192+ // mRecyclerView.addHeaderView(header1);
193+ // header1.setBackgroundColor(0xff556B2F);
194+ // View header2 = LayoutInflater.from(this).inflate(R.layout.recyclerview_header, (ViewGroup)findViewById(android.R.id.content),false);
195+ // mRecyclerView.addHeaderView(header2);
196+ // header2.setBackgroundColor(0xff1874CD);
197+
198+
199+ mAdapter = new MyRecyclerAdatpter ();
200+ mRecyclerView .setAdapter (mAdapter );
201+ mAdapter .setOnItemClickListener (this );
202+ mRecyclerView .setLoadingListener (new YHRecyclerView .LoadingListener ()
203+ {
204+ @ Override
205+ public void onRefresh ()
206+ {
207+ page = 1 ;
208+ mAdapter .getDatas ().clear ();//必须在数据更新前清空,不能太早
209+ getDataByLine ();
210+ }
211+
212+ @ Override
213+ public void onLoadMore ()
214+ {
215+ page ++;
216+ if (page <= TOTAL_PAGE )
217+ {//小于总页数就加载更多
218+ // loading more
219+ getDataByLine ();
220+ } else
221+ {
222+ //the end
223+ mRecyclerView .setNoMore (true );
224+ }
225+ }
226+ });
227+ mRecyclerView .refresh ();
72228 }
73229 //获取Back键的按下事件
74230 @ Override
75231 public void onBackPressed ()
76232 {
77233
234+
78235 if (drawer .isDrawerOpen (GravityCompat .START ))
79236 {
80237 drawer .closeDrawer (GravityCompat .START );
@@ -121,54 +278,73 @@ public boolean onNavigationItemSelected(MenuItem item)
121278 if (id == R .id .nav_camera )
122279 {
123280 changeFragment (R .id .content ,oneFragment );
124- Snackbar .make (view , "nav_camera" , Snackbar .LENGTH_LONG )
281+ Snackbar .make (drawer , "nav_camera" , Snackbar .LENGTH_LONG )
125282 .setAction ("Action" , null ).show ();
126283 }
127284 else if (id == R .id .nav_gallery )
128285 {
129286 changeFragment (R .id .content ,twoFragment );
130- Snackbar .make (view , "nav_camera" , Snackbar .LENGTH_LONG )
287+ Snackbar .make (drawer , "nav_camera" , Snackbar .LENGTH_LONG )
131288 .setAction ("Action" , null ).show ();
132289 }
133290 else if (id == R .id .nav_slideshow )
134291 {
135292 changeFragment (R .id .content ,threeFragment );
136- Snackbar .make (view , "nav_camera" , Snackbar .LENGTH_LONG )
293+ Snackbar .make (drawer , "nav_camera" , Snackbar .LENGTH_LONG )
137294 .setAction ("Action" , null ).show ();
138295 }
139296 else if (id == R .id .nav_manage )
140297 {
141298 changeFragment (R .id .content ,fourFragment );
142- Snackbar .make (view , "nav_manage" , Snackbar .LENGTH_LONG )
299+ Snackbar .make (drawer , "nav_manage" , Snackbar .LENGTH_LONG )
143300 .setAction ("Action" , null ).show ();
144301 }
145302 else if (id == R .id .nav_share )
146303 {
147- Snackbar .make (view , "nav_share" , Snackbar .LENGTH_LONG )
304+ Snackbar .make (drawer , "nav_share" , Snackbar .LENGTH_LONG )
148305 .setAction ("Action" , null ).show ();
149306 }
150307 else if (id == R .id .nav_send )
151308 {
152- Snackbar .make (view , "nav_send" , Snackbar .LENGTH_LONG )
309+ Snackbar .make (drawer , "nav_send" , Snackbar .LENGTH_LONG )
153310 .setAction ("Action" , null ).show ();
154311 }
155312 drawer .closeDrawer (GravityCompat .START );
313+ drawer .closeDrawer (GravityCompat .END );
156314 return true ;
157315 }
158316
159317 @ Override
160318 protected void onMenuClick ()
161319 {
162320 super .onMenuClick ();
163- Snackbar .make (view , "onMenuClick" , Snackbar .LENGTH_LONG )
321+ Snackbar .make (drawer , "onMenuClick" , Snackbar .LENGTH_LONG )
164322 .setAction ("Action" , null ).show ();
323+ //显示右侧栏
324+ if (drawer .isDrawerOpen (GravityCompat .START )) {
325+ drawer .closeDrawer (GravityCompat .START );
326+ }
327+ drawer .openDrawer (GravityCompat .END );
165328 }
166329
167330 @ Override
168331 protected void onBackClick ()
169332 {
170333 super .onBackClick ();
171- Snackbar .make (view , "onBackClick" , Snackbar .LENGTH_LONG )
334+ Snackbar .make (drawer , "onBackClick" , Snackbar .LENGTH_LONG )
172335 .setAction ("Action" , null ).show ();
173336 }
337+
338+ @ Override
339+ public boolean onItemLongClick (View view , MenuModel data , int postion )
340+ {
341+ YHViewInject .create ().showTips ("长按:" + data .getMenuname () + " " + postion );
342+ return true ;
343+ }
344+
345+ @ Override
346+ public void onItemClick (View view , MenuModel data , int postion )
347+ {
348+ YHViewInject .create ().showTips ("点击了:" + data .getMenuname () + " " + postion );
349+ }
174350}
0 commit comments